@lifi/widget
Version:
LI.FI Widget for cross-chain bridging and swapping. It will drive your multi-chain strategy and attract new users from everywhere.
48 lines (47 loc) • 2.05 kB
TypeScript
import type { Order } from '@lifi/sdk';
import type { PropsWithChildren } from 'react';
import type { StoreApi } from 'zustand';
import type { UseBoundStoreWithEqualityFn } from 'zustand/traditional';
import type { Appearance, WidgetConfig } from '../../types';
export type ValueSetter<S> = <K extends keyof S>(key: K, value: S[Extract<K, string>]) => void;
export type ValuesSetter<S> = <K extends keyof S>(values: Record<K, S[Extract<K, string>]>) => void;
export type SettingsToolType = 'Bridges' | 'Exchanges';
export declare const SettingsToolTypes: SettingsToolType[];
export interface SettingsProps {
appearance: Appearance;
gasPrice?: string;
language?: string;
routePriority?: Order;
enabledAutoRefuel: boolean;
showDestinationWallet: boolean;
slippage?: string;
enabledBridges: string[];
_enabledBridges?: Record<string, boolean>;
enabledExchanges: string[];
_enabledExchanges?: Record<string, boolean>;
}
export interface SettingsState extends SettingsProps {
setValue: ValueSetter<SettingsProps>;
setValues: ValuesSetter<SettingsProps>;
initializeTools(toolType: SettingsToolType, tools: string[], reset?: boolean): void;
setTools(toolType: SettingsToolType, tools: string[], availableTools: string[]): void;
reset(config: WidgetConfig, bridges: string[], exchanges: string[]): void;
}
export interface SendToWalletState {
showSendToWallet: boolean;
showSendToWalletDirty: boolean;
}
export interface SendToWalletStore extends SendToWalletState {
toggleSendToWallet(): void;
setSendToWallet(value: boolean): void;
}
export type SplitSubvariantOptions = 'bridge' | 'swap';
export interface SplitSubvariantState {
state?: SplitSubvariantOptions;
setState(state: SplitSubvariantOptions): void;
}
export type SplitSubvariantStore = UseBoundStoreWithEqualityFn<StoreApi<SplitSubvariantState>>;
export interface SplitSubvariantProps {
state?: SplitSubvariantOptions;
}
export type SplitSubvariantProviderProps = PropsWithChildren<SplitSubvariantProps>;