import { zodResolver } from '@hookform/resolvers/zod' import { useForm } from 'react-hook-form' import { z } from 'zod' import s from './deck-dialog.module.scss' import { ControlledCheckbox, ControlledTextField, Dialog, DialogProps } from '@/components' const newDeckSchema = z.object({ name: z.string().min(3).max(50), isPrivate: z.boolean(), }) type FormValues = z.infer type Props = Pick & { onConfirm: (data: FormValues) => void defaultValues?: FormValues } export const DeckDialog = ({ onConfirm, onCancel, defaultValues = { isPrivate: false, name: '' }, ...dialogProps }: Props) => { const { control, handleSubmit, reset } = useForm({ resolver: zodResolver(newDeckSchema), defaultValues, }) const onSubmit = handleSubmit(data => { onConfirm(data) dialogProps.onOpenChange?.(false) reset() }) const handleCancel = () => { reset() onCancel?.() } return (
) }