import Link from 'next/link'; import format from 'date-fns/format'; import { FC, useContext } from 'react'; import UserContext from '@/contexts/UserContext'; import { FaRegEdit } from 'react-icons/fa'; import beerPostQueryResult from '@/services/BeerPost/schema/BeerPostQueryResult'; import { z } from 'zod'; import useGetBeerPostLikeCount from '@/hooks/data-fetching/beer-likes/useBeerPostLikeCount'; import useTimeDistance from '@/hooks/utilities/useTimeDistance'; import BeerPostLikeButton from './BeerPostLikeButton'; interface BeerInfoHeaderProps { beerPost: z.infer; } const BeerInfoHeader: FC = ({ beerPost }) => { const createdAt = new Date(beerPost.createdAt); const timeDistance = useTimeDistance(createdAt); const { user } = useContext(UserContext); const idMatches = user && beerPost.postedBy.id === user.id; const isPostOwner = !!(user && idMatches); const { likeCount, mutate } = useGetBeerPostLikeCount(beerPost.id); return (

{beerPost.name}

by{' '} {beerPost.brewery.name}

{' posted by '} {`${beerPost.postedBy.username} `} {timeDistance && ( {`${timeDistance} ago`} )}

{isPostOwner && (
)}

{beerPost.description}

{beerPost.type.name}
{beerPost.abv}% ABV {beerPost.ibu} IBU
{(!!likeCount || likeCount === 0) && ( Liked by {likeCount} {likeCount !== 1 ? ' users' : ' user'} )}
{user && ( )}
); }; export default BeerInfoHeader;