import { useNavigations } from "@/app/_hooks/use-navigations"; import { useSignInPasswordlessMutation } from "../_queries/mutations"; import { toast } from "sonner"; import { useState } from "react"; import { useForm } from "react-hook-form"; import { ISignInPasswordlessSchema, SignInPasswordlessSchema } from "@/src/entities/models/auth/sign-in.model"; import { zodResolver } from "@hookform/resolvers/zod"; export function useSignInHandler() { const { mutateAsync: signIn, isPending, error: errors } = useSignInPasswordlessMutation(); const { router } = useNavigations(); const [error, setError] = useState(); const { register, reset, formState: { errors: formErrors }, setError: setFormError, } = useForm({ defaultValues: { email: "", }, resolver: zodResolver(SignInPasswordlessSchema), }) const handleSubmit = async (event: React.FormEvent) => { event.preventDefault(); if (isPending) return; setError(undefined); const formData = new FormData(event.currentTarget); const email = formData.get('email')?.toString(); const res = await signIn(formData); if (!res?.error) { toast('An email has been sent to you. Please check your inbox.'); if (email) router.push(`/verify-otp?email=${encodeURIComponent(email)}`); } else { setError(res.error); } }; // const onSubmit = handleSubmit(async (data) => { // if (isPending) return; // console.log(data); // setError(undefined); // const { email } = data; // const formData = new FormData(); // formData.append('email', email); // const res = await signIn(formData); // if (!res?.error) { // toast('An email has been sent to you. Please check your inbox.'); // router.push(`/verify-otp?email=${encodeURIComponent(email)}`); // } else { // setError(res.error); // } // }) return { // formData, // handleChange, reset, register, handleSignIn: handleSubmit, error, isPending, errors: !!error || errors, }; }