Estoy tratando de enviar un correo electrónico cuando el error del objeto está vacío pero no funciona, incluso si es nulo y no contiene ningún error.
Revisé la validación con un registro de la consola, pero estoy dando los errores que faltan, pero no sé dónde está el caché.
Aquí está la función de formulario de contacto:
import React, { useState, useRef } from 'react' import './ContactForm.scss' import emailjs from "emailjs-com" import '../../shared/../../components/pages/Form/shared/LoginRegister.scss' import * as styles from '../Form/Globals.module.scss' import ContactValidation from '../../../utils/ContactValidation' export default function ContactForm() { const [values, setValues] = useState({ name: "", email: "", phone: "", subject: "", description: "" }); const [errors, setErrors] = useState({}); const form = useRef(); const ContactHandler = (e) => { e.preventDefault(); setErrors(ContactValidation(values)); if (errors === 0 || errors === {} || errors === null || errors === []) { emailjs.sendForm('api_hidden', 'swiftquiz_template', form.current, 'api_hidden') .then((result) => { console.log(result.text); alert("Sent Successfully ^_^"); }, (error) => { console.log(error.text); }); setValues({ name: "", email: "", phone: "", subject: "", description: "" }); } else { console.log("All Fields are required"); } } return ( <> {i_removed_components_for_simpicity} </> ) }Aquí está la validación:
export default function ContactValidation(values){ let errors = {}; if(!values.name.trim()){ errors.name = "Name is required." } if(!values.email){ errors.email = "Email is required." }else if(!/\S+@\S+\.\S+/.test(values.email)){ errors.email = "Email is invalid."; } if(!values.subject.trim()){ errors.subject = "Subject is required." } if(!values.description.trim()){ errors.description = "Description is required." } return errors; }