import Item from './item' import Reply from './reply' import Comment from './comment' import Text from './text' import Comments from './comments' import { COMMENTS } from '../fragments/comments' import { ITEM_FIELDS } from '../fragments/items' import { gql, useQuery } from '@apollo/client' import styles from '../styles/item.module.css' import { NOFOLLOW_LIMIT } from '../lib/constants' import { useRouter } from 'next/router' import { useMe } from './me' import { Button } from 'react-bootstrap' function BioItem ({ item, handleClick }) { const me = useMe() if (!item.text) { return null } return ( <> {me?.name === item.user.name && } ) } function TopLevelItem ({ item }) { return ( {item.text && } ) } function ItemText ({ item }) { return {item.text} } export default function ItemFull ({ item, bio, ...props }) { const query = gql` ${ITEM_FIELDS} ${COMMENTS} { item(id: ${item.id}) { ...ItemFields text comments { ...CommentsRecursive } } }` const router = useRouter() const { error, data } = useQuery(query, { fetchPolicy: router.query.cache ? 'cache-first' : undefined }) if (error) { return
Failed to load!
} // XXX replace item with cache version if (data) { ({ item } = data) } return ( <> {item.parentId ? : (bio ? : )} {item.comments &&
} ) }