import { zodResolver } from '@hookform/resolvers/zod' import { useEffect } from 'react' import toast from 'react-hot-toast' import { useFetcher } from 'react-router' import { RemixFormProvider, useRemixForm } from 'remix-hook-form' import { z } from 'zod' import { DialogNews } from '~/components/dialog/news' import { Button } from '~/components/ui/button' import { Input } from '~/components/ui/input' import { useNewsContext } from '~/contexts/news' export const loginSchema = z.object({ email: z.string().email('Email tidak valid'), password: z.string().min(6, 'Kata sandi minimal 6 karakter'), }) export type TLoginSchema = z.infer export const DialogLogin = () => { const { setIsRegisterOpen, setIsLoginOpen, setIsForgetOpen, setIsSubscribeOpen, isLoginOpen, } = useNewsContext() const fetcher = useFetcher() const formMethods = useRemixForm({ mode: 'onSubmit', fetcher, resolver: zodResolver(loginSchema), }) const { handleSubmit } = formMethods useEffect(() => { if (!fetcher.data?.success) { toast.error(fetcher.data?.message) return } setIsLoginOpen(false) if (fetcher.data?.user.subscribe?.subscribe_plan?.code === 'basic') { setIsSubscribeOpen(true) } // eslint-disable-next-line react-hooks/exhaustive-deps }, [fetcher]) return ( { if (fetcher.state === 'idle') { setIsLoginOpen(false) } }} description="Selamat Datang, silakan daftarkan akun Anda untuk melanjutkan!" >
Lupa Kata Sandi?
{/* Link Daftar */}
Belum punya akun?{' '}
) }