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.

32 lines (31 loc) 1.28 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useChains = void 0; const react_query_1 = require("@tanstack/react-query"); const react_1 = require("react"); const providers_1 = require("../providers"); const useChains = () => { const { chains } = (0, providers_1.useWidgetConfig)(); const lifi = (0, providers_1.useLiFi)(); const { data: availableChains, isLoading: isLoadingAvailableChains } = (0, react_query_1.useQuery)(['chains'], async () => lifi.getChains(), { refetchInterval: 300000, staleTime: 300000, }); const filteredChains = (0, react_1.useMemo)(() => { const filteredChains = availableChains?.filter((chain) => (0, providers_1.isItemAllowed)(chain.id, chains)); return filteredChains; }, [availableChains, chains]); const getChainById = (0, react_1.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, }; }; exports.useChains = useChains;