import { AppBreadcrumb, AppContent } from "@repo/rdx-ui/components"; import { useNavigate } from "react-router-dom"; import { FormCommitButtonGroup, UnsavedChangesProvider } from "@erp/core/hooks"; import { showErrorToast, showSuccessToast } from "@repo/shadcn-ui/lib/utils"; import { useState } from "react"; import { FieldErrors } from "react-hook-form"; import { CustomerEditForm, ErrorAlert } from "../../components"; import { useCreateCustomerMutation } from "../../hooks"; import { useTranslation } from "../../i18n"; import { CustomerFormData, defaultCustomerFormData } from "../../schemas"; export const CustomerCreate = () => { const { t } = useTranslation(); const navigate = useNavigate(); const [isDirty, setIsDirty] = useState(false); // 2) Estado de creación (mutación) const { mutateAsync, isPending: isCreating, isError: isCreateError, error: createError, } = useCreateCustomerMutation(); // 3) Submit con navegación condicionada por éxito const handleSubmit = async (formData: CustomerFormData) => { /*const changedData: Record = {}; Object.keys(dirtyFields).forEach((field) => { const value = String(currentValues[field as keyof CustomerFormData]); changedData[field] = value; });*/ try { const result = await mutateAsync({ data: formData }); console.log(result); if (result) { showSuccessToast(t("pages.create.successTitle"), t("pages.create.successMsg")); navigate("/customers/list"); } } catch (e) { showErrorToast(t("pages.create.errorTitle"), (e as Error).message); } finally { } }; const handleError = (errors: FieldErrors) => { console.error("Errores en el formulario:", errors); // Aquí puedes manejar los errores, por ejemplo, mostrar un mensaje al usuario }; console.log("render"); return ( <>

{t("pages.create.title")}

{t("pages.create.description")}

{/* Alerta de error de actualización (si ha fallado el último intento) */} {isCreateError && ( )}
); };