import { UnsavedChangesProvider, useUnsavedChangesContext } from "@erp/core/hooks"; import { Button, Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, } from "@repo/shadcn-ui/components"; import { Plus } from "lucide-react"; import { useCallback, useId } from 'react'; import { useTranslation } from "../../i18n"; import { useCustomerCreateController } from '../../pages/create/use-customer-create-controller'; import { CustomerFormData } from "../../schemas"; import { CustomerEditForm } from '../editor'; type CustomerCreateModalProps = { open: boolean; onOpenChange: (open: boolean) => void; client: CustomerFormData; onChange: (customer: CustomerFormData) => void; onSubmit: () => void; // ← mantenemos tu firma (no se usa directamente aquí) }; export function CustomerCreateModal({ open, onOpenChange, }: CustomerCreateModalProps) { const { t } = useTranslation(); const formId = useId(); const { requestConfirm } = useUnsavedChangesContext(); const { form, isCreating, isCreateError, createError, handleSubmit, handleError, FormProvider } = useCustomerCreateController(); const { isDirty } = form.formState; const guardClose = useCallback(async (nextOpen: boolean) => { if (nextOpen) return onOpenChange(true); if (isCreating) return; if (!isDirty) { return onOpenChange(false); } if (await requestConfirm()) { return onOpenChange(false); } }, [requestConfirm, isCreating, onOpenChange, isDirty]); const handleFormSubmit = (data: CustomerFormData) => handleSubmit(data /*, () => onOpenChange(false)*/); return ( {t("pages.create.title")} {t("pages.create.description")}
{isCreateError && (

{(createError as Error)?.message}

)}
); }