"use client"; import { useState, useTransition } from "react"; import { useRouter } from "next/navigation"; import { useForm } from "react-hook-form"; import { zodResolver } from "@hookform/resolvers/zod"; import { LoginFormData } from "./types"; import { loginSchemaEmail } from "./schemas"; import { loginTranslation } from "./language"; import { loginHook } from "./hook"; import { AuthPageProps } from "@/validations/mutual/auth/props"; function Login({ language }: AuthPageProps) { const Router = useRouter(); const translation = loginTranslation[language]; const [isPending, startTransition] = useTransition(); const [error, setError] = useState(null); const [jsonText, setJsonText] = useState(null); const { register, formState: { errors }, handleSubmit, } = useForm({ resolver: zodResolver(loginSchemaEmail) }); const onSubmit = async (data: LoginFormData) => { loginHook(startTransition, data, setError, setJsonText, Router, language) }; return ( <>

{translation.login}

{errors.email && (

{errors.email.message}

)}
{errors.password && (

{errors.password.message}

)}
{error && (

{error}

)}
{jsonText && (

{translation.responseData}

{Object.entries(JSON.parse(jsonText)).map(([key, value]) => (
{key}: {typeof value === "object" ? JSON.stringify(value) : value?.toString() || "N/A"}
))}
)}
); } export default Login;