import { Button, Input } from "@mui/joy"; import React, { useEffect, useState } from "react"; import { Link, useNavigate } from "react-router-dom"; import { toast } from "react-hot-toast"; import * as api from "../helpers/api"; import { userService } from "../services"; import useLoading from "../hooks/useLoading"; const SignUp: React.FC = () => { const navigate = useNavigate(); const [email, setEmail] = useState(""); const [nickname, setNickname] = useState(""); const [password, setPassword] = useState(""); const actionBtnLoadingState = useLoading(false); const allowConfirm = email.length > 0 && nickname.length > 0 && password.length > 0; useEffect(() => { userService.doSignOut(); }, []); const handleEmailInputChanged = (e: React.ChangeEvent) => { const text = e.target.value as string; setEmail(text); }; const handleNicknameInputChanged = (e: React.ChangeEvent) => { const text = e.target.value as string; setNickname(text); }; const handlePasswordInputChanged = (e: React.ChangeEvent) => { const text = e.target.value as string; setPassword(text); }; const handleSignupBtnClick = async () => { if (actionBtnLoadingState.isLoading) { return; } try { actionBtnLoadingState.setLoading(); await api.signup(email, nickname, password); const user = await userService.doSignIn(); if (user) { navigate("/", { replace: true, }); } else { toast.error("Signup failed"); } } catch (error: any) { console.error(error); toast.error(error.response.data.message); } actionBtnLoadingState.setFinish(); }; return (
logo Shortify

Create your account

Email
Nickname
Password

{"Already has an account?"} Sign in

); }; export default SignUp;