'use client' import React, { useState } from "react"; import { useForm } from "react-hook-form"; import { yupResolver } from "@hookform/resolvers/yup"; import * as Yup from "yup"; import Image from "next/image"; const SignUpForm = () => { // for password show hide const [passwordShown, setPasswordShown] = useState(false); const togglePasswordVisiblity = () => { setPasswordShown(passwordShown ? false : true); }; // for Re password show hide const [rePasswordShown, setRePasswordShown] = useState(false); const toggleRePasswordVisiblity = () => { setRePasswordShown(rePasswordShown ? false : true); }; // for validation const validationSchema = Yup.object().shape({ name: Yup.string().required("Name is required"), email: Yup.string() .required("Email is required") .email("Entered value does not match email format"), password: Yup.string() .min(6, "Password must be at least 6 characters") .required("Password is required"), confirmPassword: Yup.string() .oneOf([Yup.ref("password"), null], "Passwords must match") .required("Confirm Password is required"), acceptTerms: Yup.bool().oneOf( [true], "Accept Terms and Conditions is required" ), }); const formOptions = { resolver: yupResolver(validationSchema) }; // get functions to build form with useForm() hook const { register, handleSubmit, formState } = useForm(formOptions); const { errors } = formState; function onSubmit(data, e) { // display form data on success console.log("Message submited: " + JSON.stringify(data)); e.target.reset(); } return ( <>
{errors.name && (
{errors.name?.message}
)}
{errors.email && (
{errors.email?.message}
)}
{errors.password && (
{errors.password?.message}
)} {/* End error msg */} image {/* End placeholder icon */}
{errors.confirmPassword && (
{errors.confirmPassword?.message}
)} {/* End error msg */} image {/* End placeholder icon */}
{errors.acceptTerms && (
{errors.acceptTerms?.message}
)}
{/* /.agreement-checkbox */}
{/* End .col */}
); }; export default SignUpForm;