"use client"; import { zodResolver } from "@hookform/resolvers/zod"; import { useForm } from "react-hook-form"; import { signInSchema } from "@/schema/authSchema"; 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 ForgotPasswordModal from "./forgot-password-modal"; import Link from "next/link"; import Image from "next/image"; import { GoogleSigninButton } from "./google-oauth"; import { z } from "zod"; import { useState } from "react"; import { useRouter } from "next/navigation"; export default function SigninPage() { const [serverError, setServerError] = useState(null); const router = useRouter(); const { register, handleSubmit, formState: { errors }, } = useForm({ resolver: zodResolver(signInSchema), defaultValues: { email: "", password: "", }, }); const onSubmit = async (values: z.infer) => { setServerError(null); // reset previous errors try { const response = await fetch("http://localhost:8000/auth/login", { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ Email: values.email, Password: values.password, }), }); const data = await response.json(); if (!response.ok) { throw new Error(data.message || "Failed to log in."); } localStorage.setItem("token", data.Token); localStorage.setItem("user", values.email); router.push("/setup"); } catch (error) { console.error("Error logging in:", error); setServerError(error.message); } }; return (
Forfarm

Welcome back.

New to Forfarm? Sign up
{/* Sign in form */}
{errors.email &&

{errors.email.message}

}
{errors.password &&

{errors.password.message}

}

Or log in with

); }