"use client"; import { zodResolver } from "@hookform/resolvers/zod"; import { useForm } from "react-hook-form"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { Checkbox } from "@/components/ui/checkbox"; import { Button } from "@/components/ui/button"; import { signUpSchema } from "@/schema/authSchema"; import Link from "next/link"; import Image from "next/image"; import { useState } from "react"; import { z } from "zod"; import { useRouter } from "next/navigation"; import { registerUser } from "@/api/authentication"; export default function SignupPage() { const [serverError, setServerError] = useState(null); const [successMessage, setSuccessMessage] = useState(null); const router = useRouter(); const { register, handleSubmit, formState: { errors }, } = useForm>({ resolver: zodResolver(signUpSchema), defaultValues: { email: "", password: "", confirmPassword: "", }, }); const onSubmit = async (values: z.infer) => { setServerError(null); setSuccessMessage(null); try { const data = await registerUser(values.email, values.password); localStorage.setItem("token", data.token); localStorage.setItem("user", values.email); console.log("Registration successful:", data); setSuccessMessage("Registration successful! You can now sign in."); router.push("/setup"); } catch (error: any) { console.error("Error during registration:", error); setServerError(error.message); } }; return (
Forfarm

Hi! Welcome

Already have an account? Sign in
{/* Signup form */}
{errors.email &&

{errors.email.message}

}
{errors.password &&

{errors.password.message}

}
{errors.confirmPassword &&

{errors.confirmPassword.message}

}
{serverError &&

{serverError}

} {successMessage &&

{successMessage}

}

Or sign up with

{/* Google OAuth button or additional providers */}
Google Logo
); }