import { Flex, Grid, Text } from '@chakra-ui/react'; import type { UseQueryResult } from '@tanstack/react-query'; import React from 'react'; import type { TokenInfo } from 'types/api/token'; import type { ResourceError } from 'lib/api/resources'; import { AddressHighlightProvider } from 'lib/contexts/addressHighlight'; import useIsMobile from 'lib/hooks/useIsMobile'; import useIsMounted from 'lib/hooks/useIsMounted'; import ActionBar from 'ui/shared/ActionBar'; import DataListDisplay from 'ui/shared/DataListDisplay'; import AddressEntity from 'ui/shared/entities/address/AddressEntity'; import Pagination from 'ui/shared/pagination/Pagination'; import type { QueryWithPagesResult } from 'ui/shared/pagination/useQueryWithPages'; import ResetIconButton from 'ui/shared/ResetIconButton'; import TokenInventoryItem from './TokenInventoryItem'; type Props = { inventoryQuery: QueryWithPagesResult<'general:token_inventory'>; tokenQuery: UseQueryResult>; ownerFilter?: string; shouldRender?: boolean; }; const TokenInventory = ({ inventoryQuery, tokenQuery, ownerFilter, shouldRender = true }: Props) => { const isMobile = useIsMobile(); const isMounted = useIsMounted(); const resetOwnerFilter = React.useCallback(() => { inventoryQuery.onFilterChange({}); }, [ inventoryQuery ]); if (!isMounted || !shouldRender) { return null; } const isActionBarHidden = !ownerFilter && !inventoryQuery.data?.items.length; const ownerFilterComponent = ownerFilter && ( Filtered by owner ); const actionBar = !isActionBarHidden && ( <> { ownerFilterComponent } { isMobile && } ); const items = inventoryQuery.data?.items; const token = tokenQuery.data; const content = items && token ? ( { items.map((item, index) => ( )) } ) : null; return ( { content } ); }; export default TokenInventory;