import { useState, useEffect } from 'react';
import { Contacto } from '../../Interfaces/Interfaces';

export const useRepresentanteSelection = (contactos: Contacto[], setData: (key: string, value: any) => void) => {
    const [contactosOptions, setContactosOptions] = useState<Contacto[]>(contactos);
    const [selectedContacto, setSelectedContacto] = useState<Contacto[]>([]);
    const [isLoading, setIsLoading] = useState(false);

    useEffect(() => {
        setIsLoading(false);
        setContactosOptions(contactos);
    }, [contactos]);

    const handleContactoDocumentoChange = (selected: any[]) => {
        const contacto = selected.length > 0 ? (selected[0] as Contacto) : null;
        if (contacto) {
            setData('documento_fiscal', contacto.NIFConCli);
            setData('razon_social', contacto.NomConCli);
            setSelectedContacto([contacto]);
        } else {
            setData('documento_fiscal', '');
            setData('razon_social', '');
            setSelectedContacto([]);
        }
    };

    const handleContactoNombreChange = (selected: any[]) => {
        if (selected.length > 0) {
            const contacto = selected[0];
            setData('documento_fiscal', contacto.NIFConCli);
            setData('razon_social', contacto.NomConCli);
            setSelectedContacto(selected);
        }
    };

    return {
        contactosOptions,
        selectedContacto,
        setSelectedContacto,
        isLoading,
        handleContactoDocumentoChange,
        handleContactoNombreChange
    };
};

