import { useEffect, useState } from "react"; import { Link } from "react-router-dom"; import "./page-auth.css"; import { AuthWrapper } from "./AuthWrapper"; import { useForm, Controller } from "react-hook-form"; import { zodResolver } from "@hookform/resolvers/zod"; import { z } from "zod"; import showToast from "../../services/toastService"; import AuthRepository from "../../repositories/AuthRepository"; import { MarketRepository } from "../../repositories/MarketRepository"; const mobileNumberRegex = /^(?:\d{10}|\d{3}[-\s]?\d{3}[-\s]?\d{4})$/; const registerSchema = z.object({ organizatioinName: z .string() .min(1, { message: "Organization Name is required" }), email: z.string().email(), about: z .string() .min(1, { message: "Current Address is required" }) .max(500, { message: "Address cannot exceed 500 characters" }), contactPerson: z.string().min(1, { message: "Person Name is required" }), contactNumber: z .string() .min(1, { message: "Phone Number is required" }) .regex(mobileNumberRegex, { message: "Invalid phone number " }), oragnizationSize: z .string() .min(1, { message: "please Select Organization Size " }), industryId: z.string(), terms: z.boolean().refine((val) => val === true, { message: "Please accept the terms and conditions.", }), }); const RegisterPage = () => { const [registered, setRegristered] = useState(false); const [industries, setIndustries] = useState([]); const [Loading, setLoading] = useState(false); const { register, handleSubmit, formState: { errors }, reset, } = useForm({ resolver: zodResolver(registerSchema), }); const onSubmit = async (data) => { try { setLoading(true); const response = await MarketRepository.requestDemo(data); showToast( "Your request has been sent successfully. Please stay in touch!" ); setRegristered(true); setLoading(false); reset(); } catch (error) { showToast(error.message, "error"); setLoading(false); } }; useEffect(() => { fetchIndustries(); }, []); useEffect(() => {}, [industries]); const fetchIndustries = async () => { try { const response = await MarketRepository.getIndustries(); const industry = response.data; setIndustries(industry); } catch (error) { showToast(error.message, "error"); } }; return ( <>

Adventure starts here

Make your app management easy and fun!

{errors.organizatioinName && (
{errors.organizatioinName.message}
)}
{errors.email && (
{errors.email.message}
)}
{errors.contactPerson && (
{errors.contactPerson.message}
)}
{errors.contactNumber && (
{errors.contactNumber.message}
)}
{errors.about && (
{errors.about.message}
)}
{errors.oragnizationSize && (
{errors.oragnizationSize.message}
)}
{errors.industryId && (
{errors.industryId.message}
)}
{errors.terms && (
{errors.terms.message}
)}

Already have an account? Back to login

); }; export default RegisterPage;