import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, } from "@repo/shadcn-ui/components"; import { zodResolver } from "@hookform/resolvers/zod"; import { FieldErrors, useForm } from "react-hook-form"; import { Form } from "@repo/shadcn-ui/components"; import { useUnsavedChangesNotifier } from "@erp/core/hooks"; import { FormDebug } from "../../components/form-debug"; import { useTranslation } from "../../i18n"; import { CustomerData, CustomerUpdateData, CustomerUpdateSchema } from "../../schemas"; import { CustomerAdditionalConfigFields } from "./customer-additional-config-fields"; import { CustomerAddressFields } from "./customer-address-fields"; import { CustomerBasicInfoFields } from "./customer-basic-info-fields"; import { CustomerContactFields } from "./customer-contact-fields"; interface CustomerFormProps { defaultValues: CustomerData; // ✅ ya no recibe DTO isPending?: boolean; onSubmit: (data: CustomerUpdateData) => void; onError: (errors: FieldErrors) => void; } export const CustomerEditForm = ({ defaultValues, onSubmit, isPending }: CustomerFormProps) => { const { t } = useTranslation(); const form = useForm({ resolver: zodResolver(CustomerUpdateSchema), defaultValues, disabled: isPending, }); const { watch, formState: { isDirty, dirtyFields }, } = form; useUnsavedChangesNotifier({ isDirty, }); const currentValues = watch(); const handleSubmit = (data: CustomerUpdateData) => { console.log("Datos del formulario:", data); const changedData: Record = {}; Object.keys(dirtyFields).forEach((field) => { const value = String(currentValues[field as keyof CustomerUpdateData]); changedData[field] = value; }); console.log(changedData); onSubmit(changedData); }; const handleError = (errors: FieldErrors) => { console.error("Errores en el formulario:", errors); // Aquí puedes manejar los errores, por ejemplo, mostrar un mensaje al usuario }; const handleCancel = () => { form.reset(defaultValues); }; return (
); return (
{t("form_groups.basic_info.title")} {t("form_groups.basic_info.description")}

 

); return (
); };