import Link from 'next/link'; import formatDistanceStrict from 'date-fns/formatDistanceStrict'; import format from 'date-fns/format'; import { FC, useContext, useEffect, useState } from 'react'; import { FaRegThumbsUp, FaThumbsUp } from 'react-icons/fa'; import BeerPostQueryResult from '@/services/BeerPost/schema/BeerPostQueryResult'; import UserContext from '@/contexts/userContext'; import sendCheckIfUserLikesBeerPostRequest from '@/requests/sendCheckIfUserLikesBeerPostRequest'; import sendLikeRequest from '../../requests/sendLikeRequest'; const BeerInfoHeader: FC<{ beerPost: BeerPostQueryResult }> = ({ beerPost, }) => { const createdAtDate = new Date(beerPost.createdAt); const [timeDistance, setTimeDistance] = useState(''); const { user } = useContext(UserContext); const [loading, setLoading] = useState(true); const [isLiked, setIsLiked] = useState(false); useEffect(() => { if (!user) { setLoading(false); return; } sendCheckIfUserLikesBeerPostRequest(beerPost.id) .then((currentLikeStatus) => { setIsLiked(currentLikeStatus); setLoading(false); }) .catch((e) => { console.error(e); setLoading(false); }); }, [user, beerPost.id]); useEffect(() => { setTimeDistance( formatDistanceStrict(new Date(beerPost.createdAt), new Date()), ); }, [beerPost.createdAt]); const handleLike = async () => { try { await sendLikeRequest(beerPost); setIsLiked(!isLiked); } catch (e) { console.error(e); } }; return (
{beerPost.description}