import { useQuery } from '@apollo/client' import AccordianItem from './accordian-item' import Item, { ItemSkeleton } from './item' import { BOUNTY_ITEMS_BY_USER_NAME } from '../fragments/items' import Link from 'next/link' import styles from './items.module.css' export default function PastBounties ({ children, item }) { const emptyItems = new Array(5).fill(null) const { data, loading } = useQuery(BOUNTY_ITEMS_BY_USER_NAME, { variables: { name: item.user.name, limit: 5 }, fetchPolicy: 'cache-first' }) let items, cursor if (data) { ({ getBountiesByUserName: { items, cursor } } = data) items = items.filter(i => i.id !== item.id) } return ( <AccordianItem header={<div className='font-weight-bold'>{item.user.name}'s bounties</div>} body={ <> <div className={styles.grid}> {loading ? emptyItems.map((_, i) => <ItemSkeleton key={i} />) : (items?.length ? items.map(bountyItem => { return <Item key={bountyItem.id} item={bountyItem} /> }) : <div className='text-muted' style={{ fontFamily: 'lightning', fontSize: '2rem', opacity: '0.75' }}>EMPTY</div> )} </div> {cursor && <Link href={`/${item.user.name}/bounties`} query={{ parent: item }} passHref><a className='text-reset text-muted font-weight-bold'>view all past bounties</a></Link>} </> } /> ) }