'use client';

import { useState } from "react";
import { RGPDFormData, defaultRGPDFormData } from "../config/rgpd.types";
import { formatDateForInput } from "../components/FormsFieldsTypes";

export function useRGPDForm(initialData?: Partial<RGPDFormData>) {
    const [formData, setFormData] = useState<RGPDFormData>({...defaultRGPDFormData, ...initialData});

    const updateField = (name: keyof RGPDFormData, value: any) => {
        setFormData((prev) => {
            const updated = {
                ...prev,
                [name]: value
            };
            if (name === "date_reception") {
                const limite = new Date(value);
                limite.setMonth(limite.getMonth() + 1);

                updated.date_limite = formatDateForInput(limite);
            }
            return updated;
        });
    };

    const resetForm = () => {
        setFormData(defaultRGPDFormData);
    };

    return {
        formData,
        setFormData,
        updateField,
        resetForm
    };
}