import sendCreateBeerCommentRequest from '@/requests/sendCreateBeerCommentRequest'; import beerPostQueryResult from '@/services/BeerPost/schema/BeerPostQueryResult'; import { zodResolver } from '@hookform/resolvers/zod'; import { FunctionComponent } from 'react'; import { useForm, SubmitHandler } from 'react-hook-form'; import { z } from 'zod'; import useBeerPostComments from '@/hooks/useBeerPostComments'; import CreateCommentValidationSchema from '@/services/types/CommentSchema/CreateCommentValidationSchema'; import CommentForm from '../ui/CommentForm'; interface BeerCommentFormProps { beerPost: z.infer; mutate: ReturnType['mutate']; } const BeerCommentForm: FunctionComponent = ({ beerPost, mutate, }) => { const { register, handleSubmit, formState, watch, reset, setValue } = useForm< z.infer >({ defaultValues: { rating: 0 }, resolver: zodResolver(CreateCommentValidationSchema), }); const onSubmit: SubmitHandler> = async ( data, ) => { await sendCreateBeerCommentRequest({ content: data.content, rating: data.rating, beerPostId: beerPost.id, }); await mutate(); reset(); }; return ( ); }; export default BeerCommentForm;