From f99e0aba70efad0deb907d8e27f09fc9f527c8a4 Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Fri, 17 Feb 2023 17:07:50 +0700 Subject: Refactor --- src2/pages/register.js | 100 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 src2/pages/register.js (limited to 'src2/pages/register.js') diff --git a/src2/pages/register.js b/src2/pages/register.js new file mode 100644 index 00000000..39bd137f --- /dev/null +++ b/src2/pages/register.js @@ -0,0 +1,100 @@ +import axios from "axios"; +import Head from "next/head"; +import Image from "next/image"; +import Link from "@/components/elements/Link"; +import { useEffect, useState } from "react"; +import Alert from "@/components/elements/Alert"; +import Layout from "@/components/layouts/Layout"; +import Spinner from "@/components/elements/Spinner"; +import Logo from "@/images/logo.png"; + +export default function Login() { + const [email, setEmail] = useState(''); + const [name, setName] = useState(''); + const [password, setPassword] = useState(''); + const [isInputFulfilled, setIsInputFulfilled] = useState(false); + const [isLoading, setIsLoading] = useState(false); + const [alert, setAlert] = useState(); + + useEffect(() => { + setIsInputFulfilled(email && name && password); + }, [email, name, password]); + + const register = async (e) => { + e.preventDefault(); + setIsLoading(true); + let register = await axios.post(`${process.env.SELF_HOST}/api/register`, {email, name, password}); + if (register.data.register) { + await axios.post(`${process.env.SELF_HOST}/api/activation-request`, {email}); + setAlert({ + component: <>Berhasil mendaftarkan akun anda, cek email untuk melakukan aktivasi akun, + type: 'success' + }); + setEmail(''); + setName(''); + setPassword(''); + } else { + switch (register.data.reason) { + case 'EMAIL_USED': + setAlert({ + component: <>Email telah digunakan, + type: 'info' + }); + break; + } + } + setIsLoading(false); + } + + return ( + <> + + Daftar - Indoteknik + + + + Logo Indoteknik + +

Mudahkan Pembelian dengan Indoteknik

+

Daftar untuk melanjutkan belanja

+ {alert ? ( + {alert.component} + ) : ''} +
+ + setEmail(e.target.value)} + /> + + setName(e.target.value)} + /> + + setPassword(e.target.value)} + /> + +
+

Sudah punya akun Indoteknik? Masuk

+
+ + ) +} \ No newline at end of file -- cgit v1.2.3