import Image from 'next/image' import Link from 'next/link' import { useRouter } from 'next/router' import { useEffect, useState } from 'react' import IndoteknikLogo from '@/images/logo.png' import axios from 'axios' import { setAuth } from '@/core/utils/auth' import Alert from '@/core/components/elements/Alert/Alert' import odooApi from '@/core/api/odooApi' const Activate = () => { const router = useRouter() const { token } = router.query const [isLoading, setIsLoading] = useState(false) const [alert, setAlert] = useState() const [email, setEmail] = useState(router.query?.email || '') useEffect(() => { const activateIfTokenExist = async () => { if (token) { let isActivated = await odooApi('POST', '/api/v1/user/activation', { token }) if (isActivated.activation) { setAuth(isActivated.user) setAlert({ children: ( <> Selamat, akun anda berhasil diaktifkan,{' '} kembali ke beranda . > ), type: 'success' }) } else { setAlert({ children: ( <> Mohon maaf token sudah tidak aktif, lakukan permintaan aktivasi akun kembali atau{' '} masuk {' '} jika sudah memiliki akun. > ), type: 'info' }) } } } activateIfTokenExist() }, [token]) useEffect(() => { if (router.query.email) setEmail(router.query.email) }, [router]) const activationRequest = async (e) => { e.preventDefault() setIsLoading(true) let activationRequest = await axios.post( `${process.env.NEXT_PUBLIC_SELF_HOST}/api/activation-request`, { email } ) if (activationRequest.data.activationRequest) { setAlert({ children: <>Mohon cek email anda untuk aktivasi akun Indoteknik>, type: 'success' }) } else { switch (activationRequest.data.reason) { case 'NOT_FOUND': setAlert({ children: ( <> Email tersebut belum terdaftar,{' '} daftar sekarang . > ), type: 'info' }) break case 'ACTIVE': setAlert({ children: ( <> Email tersebut sudah terdaftar dan sudah aktif,{' '} masuk sekarang . > ), type: 'info' }) break } } setIsLoading(false) } return (