@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
JavaScript
;
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;