UNPKG

@coin-voyage/paykit

Version:

Seamless crypto payments. Onboard users from any chain, any coin into your app with one click.

25 lines (24 loc) 839 B
import { fetchTokenList, getChains, tokensByChainId } from "@coin-voyage/shared/currency"; import { useQuery } from "@tanstack/react-query"; import { useMemo } from "react"; const TOKEN_LIST_QUERY_KEY = ["token-list"]; const TOKEN_LIST_STALE_TIME = 1000 * 60 * 15; export function useTokenList(chainId) { const query = useQuery({ queryKey: TOKEN_LIST_QUERY_KEY, queryFn: () => fetchTokenList(), staleTime: TOKEN_LIST_STALE_TIME, }); const chains = useMemo(() => getChains(query.data?.chains ?? []), [query.data]); const tokens = useMemo(() => { if (!query.data || !chainId) return []; return tokensByChainId(query.data.chains, chainId); }, [query.data, chainId]); return { ...query, tokenList: query.data, chains, tokens, }; }