WidgetLightConfig 对象的形式传递给 <LiFiWidgetLight> 的 config prop。所有配置都必须可 JSON 序列化,因为它是通过 postMessage 发送到 iframe 的。
JSON 序列化约束
由于配置通过postMessage(使用结构化克隆算法)跨越 iframe 边界,以下内容在 WidgetLightConfig 中不受支持:
- React 节点或 JSX 元素
- 回调函数
- 类实例
- MUI 主题对象(
palette、colorSchemes、shape、typography、components)
WidgetLightConfig 是完整 widget 配置的一个精选子集,仅暴露可序列化的字段 — 上述不可序列化的选项根本不属于该类型,因此传入它们会导致 TypeScript 错误。这是通过省略字段来实现约束,而非一种通用的可序列化性守卫,因此请确保你确实传入的任何嵌套值在运行时都是可 JSON 序列化的。
如果你需要包括 React 节点和 MUI 主题在内的完整配置能力,请改用 完整 widget。
必需配置
唯一必填的字段是integrator,它在 LI.FI 分析中标识你的项目:
配置参考
布局
外观
theme 对象支持针对特定容器的 CSS 属性。这不是 MUI 主题 — 只接受可序列化的 CSS 属性:
WidgetTheme 字段:
链和代币选择
API 和手续费
WidgetFeeConfig 字段:
路由
SDK 配置
sdkConfig 字段控制 API 和路由行为:
WidgetSDKConfig 字段:
WidgetRouteOptions 字段:
fee、referrer、order 和 slippage 在 sdkConfig.routeOptions 中不可用。请改用顶层的 feeConfig、referrer、routePriority 和 slippage 配置字段。允许/拒绝列表
过滤哪些链、代币、桥接和交易所可用:UI 控制
控制哪些 UI 元素可见、被禁用或必填。每个选项使用一个对象配置,其中键是 UI 元素名称,值是布尔值:hiddenUI 键: appearance、drawerCloseButton、history、language、poweredBy、toAddress、fromToken、toToken、walletMenu、integratorStepDetails、reverseTokensButton、routeTokenDescription、routeCardPriceImpact、chainSelect、chainSidebar、bridgesSettings、addressBookConnectedWallets、lowAddressActivityConfirmation、gasRefuelMessage、searchTokenInput、insufficientGasMessage、contactSupport、hideSmallBalances、allNetworks
disabledUI 键: fromAmount、fromToken、toAddress、toToken
requiredUI 键: toAddress、accountDeployedMessage
钱包配置
当你向组件传入
onConnect 时,walletConfig.useExternalWalletManagement 字段会被自动设置。你无需手动设置它。国际化
支持的语言键:
en、es、fr、de、it、pt、ja、ko、zh、hi、bn、th、vi、tr、uk、id、pl
杂项
响应式配置更新
配置是响应式的。当你传入一个新的config 对象时,widget 会实时更新而无需重新加载 iframe:
CONFIG_UPDATE 消息发送到 iframe。widget 会应用新配置而无需完整重新加载,并保留任何进行中的状态。
