import { Flex, FormatCryptoCurrency, Switch, Text, Tooltip, } from 'components/primitives' import { Dispatch, FC, SetStateAction, useMemo } from 'react' import * as Collapsible from '@radix-ui/react-collapsible' import { CollapsibleContent } from 'components/primitives/Collapsible' import Image from 'next/image' import { NAVBAR_HEIGHT } from 'components/navbar' import { useUserCollections } from '@reservoir0x/reservoir-kit-ui' import { OpenSeaVerified } from './OpenSeaVerified' import { PercentChange } from 'components/primitives/PercentChange' import LoadMoreCollections from 'components/common/LoadMoreCollections' import optimizeImage from 'utils/optimizeImage' import { formatNumber } from 'utils/numbers' type Collections = ReturnType['data'] type Props = { open: boolean hideSpam: boolean setOpen: (open: boolean) => void setHideSpam: Dispatch> collections: Collections filterCollection: string | undefined setFilterCollection: Dispatch> scrollToTop?: () => void loadMoreCollections: () => void isLoading?: boolean isOwner?: boolean } export const TokenFilters: FC = ({ open, setOpen, collections, filterCollection, setFilterCollection, isLoading, isOwner, scrollToTop, loadMoreCollections, hideSpam, setHideSpam, }) => { if (collections?.length === 0 || collections == null || isLoading) { return null } return ( Hide Spam setHideSpam(checked)} /> {collections?.map((collection) => { let selected = collection?.collection?.id == filterCollection return ( { if (selected) { setFilterCollection(undefined) } else { setFilterCollection(collection?.collection?.id) } scrollToTop?.() }} > {collection?.collection?.image && ( src} src={optimizeImage( collection?.collection?.image as string, 84 )} alt={collection?.collection?.name as string} width={42} height={42} /> )} {collection?.collection?.name} ) })} ) }