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.

28 lines (27 loc) 1.09 kB
import { useQuery } from '@tanstack/react-query'; import { useCallback, useMemo } from 'react'; import { isItemAllowed, useLiFi, useWidgetConfig } from '../providers'; export const useChains = () => { const { chains } = useWidgetConfig(); const lifi = useLiFi(); const { data: availableChains, isLoading: isLoadingAvailableChains } = useQuery(['chains'], async () => lifi.getChains(), { refetchInterval: 300000, staleTime: 300000, }); const filteredChains = useMemo(() => { const filteredChains = availableChains?.filter((chain) => isItemAllowed(chain.id, chains)); return filteredChains; }, [availableChains, chains]); const getChainById = useCallback((chainId) => { const chain = availableChains?.find((chain) => chain.id === chainId); // if (!chain) { // throw new Error('Chain not found or chainId is invalid.'); // } return chain; }, [availableChains]); return { chains: filteredChains, getChainById, isLoading: isLoadingAvailableChains, }; };