"use client"; import React from "react"; import { z } from "zod"; import { zodResolver } from "@hookform/resolvers/zod"; import { useForm } from "react-hook-form"; import { useTranslations } from "next-intl"; import { Link, useRouter } from "@/shared/config/navigation"; import alert from "./icons/alert-circle.svg"; import Image from "next/image"; import eye_off from "./icons/eye-off.svg"; import eye_on from "./icons/eye-on.svg"; import Loader from "@/shared/ui/Loader/Loader"; import { signIn, useSession } from "next-auth/react"; const SignInForm = ({}) => { const session = useSession(); const t = useTranslations("signIn"); const router = useRouter(); const [showPassword, setShowPassword] = React.useState(false); const [loader, setLoader] = React.useState(false); const [error, setError] = React.useState(""); const signInFormScheme = z.object({ email: z.string().email(t("emailFormat")), password: z.string().min(8, t("passwordMin")), }); type FormFields = z.infer; const { register, handleSubmit, formState: { errors, isSubmitting }, } = useForm({ resolver: zodResolver(signInFormScheme), }); const onSubmit = async (data: FormFields) => { setLoader(true); const result = await signIn("credentials", { redirect: false, email: data.email, password: data.password, }); if (result?.error) { setError(result.error); } else if (result?.ok) { router.push("/"); } setLoader(false); }; return (
{errors?.email?.message && (

{errors.email.message} Alert Icon

)}
{errors?.password?.message && (

{errors.password.message} Alert Icon

)}
{errors.root && (
{errors.root.message}
)}
{t("passwordForget")}
); }; export default SignInForm;