import { useEffect, useState } from "react"; import { Link } from "react-router-dom"; import logo from "../assets/icon_dark_64.png"; import google_logo from "../assets/google.png"; import github_logo from "../assets/github.png"; import axios from "axios"; import { Toast } from "@douyinfe/semi-ui"; import Canvas from "../components/AuthCanvas"; import { diagram } from "../data/signupDiagram"; export default function SignUp() { const [formValues, setFormValues] = useState({ username: "", email: "", password: "", }); const [showPassword, setShowPassword] = useState(false); const [showVerified, setShowVerified] = useState(false); const [resendCounter, setResendCounter] = useState(0); const handleChange = (e) => setFormValues((prev) => ({ ...prev, [e.target.name]: e.target.value, })); const onSubmit = async () => { await axios .post(`${import.meta.env.VITE_API_BACKEND_URL}/signup`, { username: formValues.username, email: formValues.email, password: formValues.password, }) .then(() => setShowVerified(true)) .catch(() => {}); }; const resendEmail = async () => { await axios .post(`${import.meta.env.VITE_API_BACKEND_URL}/resend`, { username: formValues.username, email: formValues.email, password: formValues.password, }) .then(() => setResendCounter((prev) => prev + 1)) .catch((e) => { if (e.response.status === 400) Toast.error("Account has already been verified."); }); }; useEffect(() => { document.title = "Create account | drawDB"; }); return (
{!showVerified ? ( <>
Create Account

or

Already have an account? Log in here.
) : ( <>
Verify Account
We {resendCounter == 0 ? "sent" : "resent"} a verification email to{" "} {formValues.email} .
Please check your inbox and verify your email.
Don't see the email?
{resendCounter < 4 ? (
If you haven't recieved the email after a few minutes, make sure to check your junk mail or{" "} .
) : (
Looks like we're having trouble signing you up. Please try again in a little bit or contact us at{" "} drawdb@gmail.com
)}
)}
); }