import { useCollectionActivity } from '@reservoir0x/reservoir-kit-ui' import { Box, Flex, Switch, Text } from 'components/primitives' import { FC } from 'react' import * as Collapsible from '@radix-ui/react-collapsible' import { CollapsibleContent } from 'components/primitives/Collapsible' import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' import { faHand, faRightLeft, faSeedling, faShoppingCart, faTag, IconDefinition, } from '@fortawesome/free-solid-svg-icons' type ActivityTypes = Exclude< NonNullable< NonNullable< Exclude['0'], boolean> >['types'] >, string > type Filters = { type: ArrayItemTypes name: string icon: IconDefinition }[] type Props = { open: boolean setOpen: (open: boolean) => void activityTypes: NonNullable setActivityTypes: (activityTypes: ActivityTypes) => void } export const ActivityFilters: FC = ({ open, setOpen, activityTypes, setActivityTypes, }) => { const filters: Filters = [ { type: 'sale', name: 'Sales', icon: faShoppingCart, }, { type: 'ask', name: 'Listings', icon: faTag, }, { type: 'bid', name: 'Offers', icon: faHand, }, { type: 'transfer', name: 'Transfer', icon: faRightLeft, }, { type: 'mint', name: 'Mint', icon: faSeedling, }, ] return ( div:first-of-type': { pt: 0, }, }} > Event Type {filters.map((filter) => ( {filter.name} { if (checked) { setActivityTypes([...activityTypes, filter.type]) } else { setActivityTypes( activityTypes.filter((item) => { return item != filter.type }) ) } }} /> ))} ) }