import { useEffect } from 'react'; import { useAccount } from 'wagmi'; import { Skeleton } from '@ui/Skeleton'; import Flex from '@ui/Flex/Flex'; import { AllowanceRow } from './allowanceRow'; import { useUserAllowanceList } from '@views/Approval/hooks/useUserAllowanceList'; export default function AllowanceList() { const { address } = useAccount(); const { data, isLoading, isFetched, isRefetching, error } = useUserAllowanceList(address ? address.toString() : undefined); const updateBalance = <T, R>(balances: T[]): R[] => { if (!balances) return []; const flatBalances: R[] | R = []; try { Object.entries(balances).forEach(([key, value]: any) => { const spender = key; Object.entries(value).forEach(([key, value]: any) => { flatBalances[key] = { contract: spender, ...value }; }); }); } catch (e) {} return flatBalances; }; const allowanceItem: any[] = Object.values( updateBalance<any, Text>(data as unknown as any) ); if (isLoading) { return ( <Flex direction="column"> <Skeleton /> <Skeleton /> <Skeleton /> </Flex> ); } if (error) { return ( <Flex customStyle="h-40 text-gray-100" justifyContent="center" alignItems="center" > Something went wrong </Flex> ); } if (!data || data?.length === 0) { return ( <Flex customStyle="h-40 text-gray-100" justifyContent="center" alignItems="center" > No Activity </Flex> ); } return ( <Flex direction="column" customStyle="p-2 h-full" overflow="yAuto"> {allowanceItem?.map((allowance) => ( <AllowanceRow {...allowance} /> ))} </Flex> ); }