Employee Validation

  • + 0 comments

    here is my code its work fine but last four case not pass how to fix it

    import React, { useEffect, useState } from "react";

    function EmployeeValidationForm() {

    const [name, setName] = useState(""); const [email, setEmail] = useState(""); const [id, setId] = useState(""); const [date, setDate] = useState(""); const [nameError, setNameError] = useState(true); const [emailError, setEmailError] = useState(true); const [idError, setIdError] = useState(true); const [dateError, setDateError] = useState(true); const [disableSubmit, setDisableSubmit] = useState(true);

    useEffect(() => { if (name && name?.length >= 4 && /^[a-zA-Z .]+$/.test(name)) { setNameError(false); } else { setNameError(true); } if (email && email.includes("@gmail.com")) { setEmailError(false); } else { setEmailError(true); } if (id && id.length >= 6) { setIdError(false); } else { setIdError(true); } const inputDate = new Date(date); const currentDate = new Date() if (date && currentDate >=inputDate) { setDateError(false); } else { setDateError(true); }

    }, [name, email, id, date])

    useEffect(() => { if (!nameError && !emailError && !idError && !dateError) { setDisableSubmit(false) } else { setDisableSubmit(true) } }, [nameError, emailError, idError, dateError])

    const handleSubmit =()=>{ setName(""); setDate(""); setEmail(""); setId(""); }

    return ( setName(event.target.value)} data-testid="input-name-test" /> {nameError && Name must be at least 4 characters long and only contain letters and spaces

    } setEmail(event.target.value)} /> {emailError && Email must be a valid email address

    } setId(event.target.value)} /> {idError && Employee ID must be exactly 6 digits

    } setDate(event.target.value)} /> {dateError && Joining Date cannot be in the future

    } Submit ); }

    export default EmployeeValidationForm;