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.

42 lines (35 loc) 1.03 kB
import { useMemo } from 'react' import { useTokenSearch } from './useTokenSearch.js' import { useTokens } from './useTokens.js' export const useToken = ( chainId?: number, tokenAddress?: string, latest?: boolean ) => { const { allTokens, isLoading: isTokensLoading } = useTokens() const token = useMemo( () => chainId && tokenAddress ? allTokens?.[chainId]?.find( (t) => t.address.toLowerCase() === tokenAddress.toLowerCase() ) : undefined, [allTokens, chainId, tokenAddress] ) const tokenSearchEnabled = !!chainId && !!tokenAddress && (latest || (!isTokensLoading && !token)) const { token: searchedToken, isLoading: isSearchLoading } = useTokenSearch( chainId, tokenAddress, tokenSearchEnabled ) const resolvedToken = latest ? (searchedToken ?? token) : (token ?? searchedToken) return { token: resolvedToken, isLoading: !resolvedToken && (isTokensLoading || (tokenSearchEnabled && isSearchLoading)), } }