UNPKG

@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.

55 lines 2.54 kB
import { useWidgetConfig } from '../providers/WidgetProvider/WidgetProvider.js'; import { defaultConfigurableSettings } from '../stores/settings/createSettingsStore.js'; import { useSettingsStore } from '../stores/settings/SettingsStore.js'; import { useSettingsActions } from '../stores/settings/useSettingsActions.js'; import { useTools } from './useTools.js'; export const useSettingMonitor = () => { const [disabledBridges, disabledExchanges, routePriority, slippage, gasPrice,] = useSettingsStore((state) => [ state.disabledBridges, state.disabledExchanges, state.routePriority, state.slippage, state.gasPrice, ]); const { tools } = useTools(); const config = useWidgetConfig(); const { setDefaultSettings, resetSettings } = useSettingsActions(); const isSlippageChanged = config.slippage ? Number(slippage) !== config.slippage * 100 : slippage !== defaultConfigurableSettings.slippage; const isSlippageOutsideRecommendedLimits = isSlippageChanged && slippage && Number(slippage) > 1; const isSlippageUnderRecommendedLimits = isSlippageChanged && slippage && Number(slippage) < 0.1; const isSlippageNotRecommended = Boolean(isSlippageOutsideRecommendedLimits || isSlippageUnderRecommendedLimits); const isRoutePriorityChanged = config.routePriority ? routePriority !== config.routePriority : routePriority !== defaultConfigurableSettings.routePriority; const isGasPriceChanged = gasPrice !== defaultConfigurableSettings.gasPrice; const isBridgesChanged = Boolean(disabledBridges.length); const isExchangesChanged = Boolean(disabledExchanges.length); const isCustomRouteSettings = isBridgesChanged || isExchangesChanged || isSlippageChanged || isRoutePriorityChanged || isGasPriceChanged; const isRouteSettingsWithWarnings = isSlippageNotRecommended; const reset = () => { if (tools) { resetSettings(tools.bridges.map((tool) => tool.key), tools.exchanges.map((tool) => tool.key)); setDefaultSettings(config); } }; return { isBridgesChanged, isExchangesChanged, isSlippageChanged, isSlippageNotRecommended, isSlippageOutsideRecommendedLimits, isSlippageUnderRecommendedLimits, isRoutePriorityChanged, isGasPriceChanged, isCustomRouteSettings, isRouteSettingsWithWarnings, reset, }; }; //# sourceMappingURL=useSettingMonitor.js.map