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

export const useClienteSelection = (clientes: Cliente[], setData: (key: string, value: any) => void) => {
    const [clientesOptions, setClientesOptions] = useState<Cliente[]>(clientes);
    const [selectedCliente, setSelectedCliente] = useState<Cliente[]>([]);
    const [isLoading, setIsLoading] = useState(false);

    useEffect(() => {
        setIsLoading(false);
        setClientesOptions(clientes);
    }, [clientes]);

    const handleClienteDocumentoChange = (selected: any[]) => {
        const cliente = selected.length > 0 ? (selected[0] as Cliente) : null;
        if (cliente) {
            setData('documento_fiscal', cliente.NumCifCli);
            setData('razon_social', cliente.RazSocCli);
            setSelectedCliente([cliente]);
        } else {
            setData('documento_fiscal', '');
            setData('razon_social', '');
            setSelectedCliente([]);
        }
    };

    const handleClienteRazonSocialChange = (selected: any[]) => {
        if (selected.length > 0) {
            const cliente = selected[0];
            setData('documento_fiscal', cliente.NumCifCli);
            setData('razon_social', cliente.RazSocCli);
            setSelectedCliente(selected);
        }
    };

    return {
        clientesOptions,
        selectedCliente,
        setSelectedCliente,
        isLoading,
        handleClienteDocumentoChange,
        handleClienteRazonSocialChange
    };
};

