"use client" import * as React from "react" import { zodResolver } from "@hookform/resolvers/zod" import { Loader } from "lucide-react" import { useForm } from "react-hook-form" import { toast } from "sonner" import { Button } from "@/components/ui/button" import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage, } from "@/components/ui/form" import { Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, } from "@/components/ui/sheet" import { Input } from "@/components/ui/input" import { UpdateVendorTypeSchema, updateVendorTypeSchema } from "../validations" import { modifyVendorType } from "../service" import { VendorTypes } from "@/db/schema" interface UpdateTypeSheetProps extends React.ComponentPropsWithRef { vendorType: VendorTypes | null } export function UpdateTypeSheet({ vendorType, ...props }: UpdateTypeSheetProps) { const [isUpdatePending, startUpdateTransition] = React.useTransition() const form = useForm({ resolver: zodResolver(updateVendorTypeSchema), defaultValues: { nameKo: vendorType?.nameKo ?? "", nameEn: vendorType?.nameEn ?? "", }, }) React.useEffect(() => { if (vendorType) { form.reset({ nameKo: vendorType.nameKo ?? "", nameEn: vendorType.nameEn ?? "", }); } }, [vendorType, form]); function onSubmit(input: UpdateVendorTypeSchema) { startUpdateTransition(async () => { if (!vendorType) return const { error } = await modifyVendorType({ id: vendorType.id, ...input, }) if (error) { toast.error(error) return } form.reset() props.onOpenChange?.(false) toast.success("Item updated") }) } return ( Update vendorType Update the vendorType details and save the changes
( 업체 유형 (한글) )} /> ( 업체 유형 (영문) )} />
) }