/* eslint-disable no-nested-ternary */ import UserContext from '@/contexts/userContext'; import beerPostQueryResult from '@/services/BeerPost/schema/BeerPostQueryResult'; import { FC, useContext } from 'react'; import { z } from 'zod'; import useBeerPostComments from '@/hooks/useBeerPostComments'; import { useRouter } from 'next/router'; import BeerCommentForm from './BeerCommentForm'; import BeerCommentsPaginationBar from './BeerPostCommentsPaginationBar'; import CommentCard from './CommentCard'; interface BeerPostCommentsSectionProps { beerPost: z.infer; } const CommentLoadingCard = () => { return (
); }; const NoCommentsCard = () => { return (
No comments yet.
); }; const BeerPostCommentsSection: FC = ({ beerPost }) => { const { user } = useContext(UserContext); const router = useRouter(); const commentsPageNum = parseInt(router.query.comments_page as string, 10) || 1; const { comments, commentsPageCount, isLoading, mutate } = useBeerPostComments({ id: beerPost.id, pageNum: commentsPageNum, pageSize: 5, }); return (
{user ? ( ) : (
Log in to leave a comment.
)}
{comments && !!commentsPageCount && !isLoading && (
{comments.map((comment) => ( ))}
)} {!comments?.length && !isLoading && } {isLoading && (
{Array.from({ length: 5 }).map((_, i) => ( ))}
)}
); }; export default BeerPostCommentsSection;