summaryrefslogtreecommitdiff
path: root/src-migrate/modules/account-activation/components/FormToken.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'src-migrate/modules/account-activation/components/FormToken.tsx')
-rw-r--r--src-migrate/modules/account-activation/components/FormToken.tsx24
1 files changed, 8 insertions, 16 deletions
diff --git a/src-migrate/modules/account-activation/components/FormToken.tsx b/src-migrate/modules/account-activation/components/FormToken.tsx
index 041fbae8..6af24413 100644
--- a/src-migrate/modules/account-activation/components/FormToken.tsx
+++ b/src-migrate/modules/account-activation/components/FormToken.tsx
@@ -8,22 +8,12 @@ import Modal from "~/common/components/elements/Modal"
import { ActivationTokenProps } from "~/common/types/auth"
import { activationUserToken } from "~/services/auth"
-type StatusProps = "success" | "error" | "loading";
-
const FormToken = () => {
const { query } = useRouter()
- const [status, setStatus] = useState<StatusProps>("loading")
const [active, setActive] = useState<boolean>(false)
const mutation = useMutation({
mutationFn: (data: ActivationTokenProps) => activationUserToken(data),
- onSuccess: (data) => {
- if (data.activation === true) {
- setStatus("success")
- } else {
- setStatus("error")
- }
- }
})
useEffect(() => {
@@ -34,19 +24,21 @@ const FormToken = () => {
//eslint-disable-next-line
}, [query.activation, query.token])
+ // TODO: Save user to local storage
+
return (
<Modal active={active} mode="desktop">
<div className="pb-6 flex flex-col items-center gap-y-6">
- {status === 'loading' && (
+ {mutation.isLoading && (
<>
<Spinner size='lg' borderWidth='3px' />
<div className="text-h-sm">Mohon tunggu sedang memverifikasi akun</div>
</>
)}
- {status !== 'loading' && (
+ {!mutation.isLoading && (
<Alert
- status={status}
+ status={mutation.data?.activation ? 'success' : 'error'}
flexDirection="column"
alignItems="center"
justifyContent="center"
@@ -56,17 +48,17 @@ const FormToken = () => {
>
<AlertIcon boxSize="40px" mr={0} />
<AlertTitle className="mt-4 mb-1 text-h-sm">
- Aktivasi akun {status === 'success' ? 'berhasil' : 'gagal'}
+ Aktivasi akun {mutation.data?.activation ? 'berhasil' : 'gagal'}
</AlertTitle>
<AlertDescription maxWidth="sm">
- {status === 'success' && (
+ {mutation.data?.activation && (
<>
Akun anda berhasil diaktifkan, selamat berbelanja di Indoteknik.
<Link href='/' className="block mt-8 text-success-700 underline">Kembali ke halaman utama</Link>
</>
)}
- {status === 'error' && mutation.data?.reason === 'INVALID_TOKEN' && (
+ {!mutation.data?.activation && mutation.data?.reason === 'INVALID_TOKEN' && (
<>
Token sudah kadaluwarsa, silahkan coba kembali.
<Link href='/register?activation=email' className="block mt-8 text-red-700 underline">Aktivasi Akun</Link>