diff --git a/src/hooks/usePoolStats.ts b/src/hooks/usePoolStats.ts index 5c6ebea..0a871da 100644 --- a/src/hooks/usePoolStats.ts +++ b/src/hooks/usePoolStats.ts @@ -143,7 +143,7 @@ export interface PoolStats { volumeChange24h: number; } -export const usePoolInfo = (address: string, signerAddress: string, tokenPrices: TokenPrices, httpClient: AxiosInstance): [PoolStats|undefined, boolean] => { +export const usePoolInfo = (address: string, signerAddress: string, tokenPrices: TokenPrices, httpClient: AxiosInstance): [{data:PoolStats|undefined,status:boolean}, boolean] => { const [tokensData, setTokensData] = useState(); const [poolInfoData, setPoolInfoData] = useState(); const [tokenIconsMap,setTokenIconMap] = useState(); @@ -195,22 +195,28 @@ export const usePoolInfo = (address: string, signerAddress: string, tokenPrices: useAsyncEffect(async()=>{ if(tokensData){ - // resolving token icons - const { token1,token2 } = tokensData!.poolById; - - let tokenAddresses:string[] = []; - - if(token1.iconUrl=='')tokenAddresses.push(token1.id); - if(token2.iconUrl=='')tokenAddresses.push(token2.id); - - const _tokenIconMap = await tokenIconUtils.resolveTokenUrl(tokenAddresses); - setTokenIconMap(_tokenIconMap); + if(tokensData.poolById!=null){ + // resolving token icons + const { token1,token2 } = tokensData!.poolById; + + let tokenAddresses:string[] = []; + + if(token1.iconUrl=='')tokenAddresses.push(token1.id); + if(token2.iconUrl=='')tokenAddresses.push(token2.id); + + const _tokenIconMap = await tokenIconUtils.resolveTokenUrl(tokenAddresses); + setTokenIconMap(_tokenIconMap); + } } },[tokensData]) - const info = useMemo(() => { - if (!poolInfoData || !tokensData) { - return undefined; + const info = useMemo<{data:PoolStats|undefined,status:boolean}>(() => { + if (!poolInfoData || !tokensData || !(tokensData!.poolById!=null)) { + if(tokensData && tokensData!.poolById==null)return { + data:undefined, + status:false + } + return {data:undefined,status:true}; } const pool = poolInfoData.poolInfo; @@ -263,7 +269,7 @@ export const usePoolInfo = (address: string, signerAddress: string, tokenPrices: const all = amountLocked1.plus(amountLocked2); - return { + return {data:{ firstToken: { address: token1.id, icon: token1.iconUrl === '' ? tokenIconsMap? tokenIconsMap[token1.id]: getIconUrl(token1.id) : token1.iconUrl, @@ -300,7 +306,7 @@ export const usePoolInfo = (address: string, signerAddress: string, tokenPrices: tvlUSD, volume24hUSD: volume24hUSD.toFormat(2), volumeChange24h: volDiff, - }; + },status:true}; }, [poolInfoData, tokensData, tokenPrices]); return [info, tokensLoading || poolInfoLoading];