import { Alert, AlertIcon } from "@chakra-ui/react" import Link from "next/link" import { useRouter } from "next/router" import { ChangeEvent, useEffect, useState } from "react" import { useMutation } from "react-query" import { Modal } from "~/components/ui/modal" import { useRegisterStore } from "~/modules/register/stores/useRegisterStore" import { ActivationReqProps } from "~/types/auth" import { activationReq } from "~/services/auth" const FormEmail = () => { const router = useRouter() const { query } = router const [active, setActive] = useState(false) const [isBtnDisabled, setIsBtnDisabled] = useState(true) const [email, setEmail] = useState('') const { form } = useRegisterStore() useEffect(() => { if (form) setEmail(form?.email) }, [form]) useEffect(() => { setIsBtnDisabled(email === '') }, [email]) useEffect(() => { setActive(query?.activation === 'email') }, [query.activation]) const mutation = useMutation({ mutationFn: (data: ActivationReqProps) => activationReq(data) }) const handleSubmit = (e: ChangeEvent) => { e.preventDefault() mutation.data = undefined mutation.mutate({ email }) } useEffect(() => { if (mutation.data?.activation_request === true) { const urlParams = new URLSearchParams({ activation: 'otp', email, redirect: (router.query?.redirect || '/') as string }) router.push(`${router.route}?${urlParams}`) } }, [mutation.data?.activation_request, router, email]) return ( router.push(router.route)} title="Aktivasi Akun">
{ mutation.data !== undefined && !mutation.data?.activation_request && ( {mutation.data?.reason === 'ACTIVE' && 'Akun sudah aktif.'} {mutation.data?.reason === 'NOT_FOUND' && 'Akun tidak ditemukan.'} {mutation.data?.reason === 'ACTIVE' && ( Klik untuk masuk akun anda )} {mutation.data?.reason === 'NOT_FOUND' && ( Klik untuk daftar akun baru )} ) } setEmail(e.target.value)} autoFocus />
) } export default FormEmail