import { ContactFormType } from '@/schemas/contact-form.schema';
import { submitContactForm } from '@/services/submitContactForm.service';
import { useState } from 'react';
import { toast } from 'sonner';

interface SubmitContactForm {
  isLoading: boolean;
  handleSubmitContactForm: (values: ContactFormType, carName?: string) => Promise<boolean>;
}

export const useSubmitContactForm = (): SubmitContactForm => {
  const [isLoading, setLoading] = useState(false);

  const handleSubmitContactForm = async (
    values: ContactFormType,
    carName?: string,
  ): Promise<boolean> => {
    setLoading(true);
    try {
      const response = await submitContactForm(values, carName);
      if (!response) throw new Error('Falló el envío del formulario');

      toast.success('Consulta enviada con éxito');
      return true;
    } catch {
      toast.error('No pudimos enviar su petición, por favor vuelva a intentarlo luego.');
      return false;
    } finally {
      setLoading(false);
    }
  };
  return { isLoading, handleSubmitContactForm };
};
