@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.
24 lines (19 loc) • 766 B
text/typescript
import { useMemo } from 'react'
import { useTokenSearch } from './useTokenSearch.js'
import { useTokens } from './useTokens.js'
export const useToken = (chainId?: number, tokenAddress?: string) => {
const { tokens, isLoading } = useTokens(chainId)
const token = useMemo(() => {
const token = tokens?.find(
(token) => token.address === tokenAddress && token.chainId === chainId
)
return token
}, [chainId, tokenAddress, tokens])
const tokenSearchEnabled = !isLoading && !token
const { token: searchedToken, isLoading: isSearchedTokenLoading } =
useTokenSearch(chainId, tokenAddress, tokenSearchEnabled)
return {
token: token ?? searchedToken,
isLoading: isLoading || (tokenSearchEnabled && isSearchedTokenLoading),
}
}