import UserContext from '@/contexts/userContext'; import useTimeDistance from '@/hooks/useTimeDistance'; import BeerCommentQueryResult from '@/services/BeerComment/schema/BeerCommentQueryResult'; import { format } from 'date-fns'; import Link from 'next/link'; import { useContext } from 'react'; import { Rating } from 'react-daisyui'; import { FaEllipsisH } from 'react-icons/fa'; import { KeyedMutator } from 'swr'; import { z } from 'zod'; const CommentCardDropdown: React.FC<{ comment: z.infer; mutate: KeyedMutator<{ comments: z.infer[]; pageCount: number; }>; }> = ({ comment, mutate }) => { const { user } = useContext(UserContext); const isCommentOwner = user?.id === comment.postedBy.id; const handleDelete = async () => { const response = await fetch(`/api/beer-comments/${comment.id}`, { method: 'DELETE', }); if (!response.ok) { throw new Error('Failed to delete comment'); } await mutate(); }; return (
    {isCommentOwner ? (
  • ) : (
  • )}
); }; const CommentCardBody: React.FC<{ comment: z.infer; mutate: KeyedMutator<{ comments: z.infer[]; pageCount: number; }>; }> = ({ comment, mutate }) => { const { user } = useContext(UserContext); const timeDistance = useTimeDistance(new Date(comment.createdAt)); return (

{comment.postedBy.username}

posted{' '} {' '} ago

{user && }
{Array.from({ length: 5 }).map((val, index) => ( ))}

{comment.content}

); }; export default CommentCardBody;