import { FormBuilder, FormField } from "@/components/forms/dynamic-submit-form"; import { type BlacklistFormData } from "@/types/black-list"; import { toast } from "sonner"; interface BlacklistFormProps { onSubmit: (data: BlacklistFormData) => Promise; closeDialog: () => void; initialData?: Partial; } export function BlacklistForm({ onSubmit, closeDialog, initialData, }: BlacklistFormProps) { return ( defaultValues={{ appName: initialData?.appName || "", processName: initialData?.processName || "", }} onSubmit={async (values: BlacklistFormData) => { if (!values.appName.trim()) { toast.error("Vui lòng nhập tên ứng dụng"); return; } if (!values.processName.trim()) { toast.error("Vui lòng nhập tên tiến trình"); return; } try { await onSubmit(values); toast.success("Thêm phần mềm bị chặn thành công!"); closeDialog(); } catch (error) { console.error("Error:", error); toast.error("Có lỗi xảy ra!"); } }} submitLabel="Thêm" cancelLabel="Hủy" onCancel={closeDialog} showCancel={true} > {(form: any) => ( <> form={form} name="appName" label="Tên ứng dụng" placeholder="VD: Google Chrome" required /> form={form} name="processName" label="Tên tiến trình" placeholder="VD: chrome.exe" required /> )} ); }