import UserContext from '@/contexts/userContext'; import BeerCommentQueryResult from '@/services/BeerComment/schema/BeerCommentQueryResult'; import { format, formatDistanceStrict } from 'date-fns'; import Link from 'next/link'; import { useRouter } from 'next/router'; import { useContext, useEffect, useState } from 'react'; import { Rating } from 'react-daisyui'; import { FaEllipsisH } from 'react-icons/fa'; import { z } from 'zod'; const CommentCardDropdown: React.FC<{ comment: z.infer; beerPostId: string; }> = ({ comment, beerPostId }) => { const router = useRouter(); 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'); } router.replace(`/beers/${beerPostId}?comments_page=1`, undefined, { scroll: false }); }; return (
); }; const CommentCard: React.FC<{ comment: z.infer; beerPostId: string; }> = ({ comment, beerPostId }) => { const [timeDistance, setTimeDistance] = useState(''); const { user } = useContext(UserContext); useEffect(() => { setTimeDistance(formatDistanceStrict(new Date(comment.createdAt), new Date())); }, [comment.createdAt]); return (

{comment.postedBy.username}

posted{' '} {' '} ago

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

{comment.content}

); }; export default CommentCard;