import { Alert, AlertDescription, AlertIcon, AlertTitle, Spinner } from "@chakra-ui/react" import { useRouter } from "next/router" import { useEffect, useState } from "react" import Link from "next/link" import { useMutation } from "react-query" import { Modal } from "~/components/ui/modal" import { ActivationTokenProps } from "~/types/auth" import { activationUserToken } from "~/services/auth" import { setAuth } from "~/libs/auth" const FormToken = () => { const router = useRouter() const { query } = router const [active, setActive] = useState(false) const mutation = useMutation({ mutationFn: (data: ActivationTokenProps) => activationUserToken(data), }) useEffect(() => { if (query?.activation === 'token' && typeof query?.token === 'string') { mutation.mutate({ token: query.token }) setActive(true) } //eslint-disable-next-line }, [query.activation, query.token]) useEffect(() => { if (mutation.data?.user) { setAuth(mutation.data.user) router.push((query?.redirect || '/') as string) } }, [mutation.data, router, query.redirect]) return (
{mutation.isLoading && ( <>
Mohon tunggu sedang memverifikasi akun
)} {!mutation.isLoading && !mutation.data?.activation && ( Aktivasi akun gagal {mutation.data?.reason === 'INVALID_TOKEN' && ( <> Token sudah kadaluwarsa, silahkan coba kembali. Aktivasi Akun )} )}
) } export default FormToken