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 { z } from 'zod'; import useTimeDistance from '@/hooks/utilities/useTimeDistance'; import BeerStyleQueryResult from '@/services/BeerStyles/schema/BeerStyleQueryResult'; import useBeerStyleLikeCount from '@/hooks/data-fetching/beer-style-likes/useBeerStyleLikeCount'; import BeerStyleLikeButton from './BeerStyleLikeButton'; interface BeerInfoHeaderProps { beerStyle: z.infer; } const BeerStyleHeader: FC = ({ beerStyle }) => { const createdAt = new Date(beerStyle.createdAt); const timeDistance = useTimeDistance(createdAt); const { user } = useContext(UserContext); const idMatches = user && beerStyle.postedBy.id === user.id; const isPostOwner = !!(user && idMatches); const { likeCount, mutate } = useBeerStyleLikeCount(beerStyle.id); return (

{beerStyle.name}

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

{isPostOwner && (
)}

{beerStyle.description}

ABV Range:{' '} {beerStyle.abvRange[0].toFixed(1)}% - {beerStyle.abvRange[0].toFixed(1)} %
IBU Range:{' '} {beerStyle.ibuRange[0].toFixed(1)} - {beerStyle.ibuRange[1].toFixed(1)}
Recommended Glassware:{' '} {beerStyle.glassware.name}
{(!!likeCount || likeCount === 0) && ( Liked by {likeCount} {likeCount !== 1 ? ' users' : ' user'} )}
{user && ( )}
); }; export default BeerStyleHeader;