import { zodResolver } from '@hookform/resolvers/zod' import { SubmitHandler, useForm } from 'react-hook-form' import { Button, Dialog, DialogContent, DialogFooter, DialogHeader, DialogSection, DialogSectionSeparator, DialogTitle, Form, FormControl, FormField, Input, Textarea, } from 'ui' import { FormItemLayout } from 'ui-patterns/form/FormItemLayout/FormItemLayout' import * as z from 'zod' const formSchema = z.object({ page: z.string(), title: z.string().min(1, 'Required'), comment: z.string().min(1, 'Required'), }) export type FeedbackFields = z.infer type FeedbackModalProps = { visible: boolean page: string onCancel: () => void onSubmit: (values: FeedbackFields) => void } function FeedbackModal({ visible, page, onCancel, onSubmit }: FeedbackModalProps) { const form = useForm({ defaultValues: { page, title: '', comment: '' }, resolver: zodResolver(formSchema), }) const formId = 'feedback-form' const { reset } = form const { isSubmitting } = form.formState const handleCancel = () => { reset() onCancel() } const handleSubmit: SubmitHandler = (values) => { onSubmit(values) reset() } return ( onCancel()}> Leave a comment
( )} /> (