import React, {useContext, useEffect, useState} from 'react'; import Navbar from "./Navbar"; import {Input} from "../custom"; import {AuthContext} from "../App"; import {registration} from "../auth"; import {toast} from "react-toastify"; import {useForm} from "react-hook-form"; const background = require('../assets/background.png') function Register(props) { const {authState, authDispatch} = useContext(AuthContext) const {register, handleSubmit, errors} = useForm(); const [error, setError] = useState("") const [status, setStatus] = useState("Register") const [canRegister, setRegister] = useState(true) function submit(data) { if (!canRegister) return; setError("") setStatus("Loading.."); setRegister(false); (async () => { let {json, status} = await registration(data.user.trim(), data.email.trim(), data.pass.trim()) setTimeout(() => setRegister(true), 1000); if (status !== 200) { setStatus("Register"); return setError(json.reason) } toast.success("Your account has been registered.") window.localStorage.setItem("authtoken", json.token) authDispatch({response: {token: json.token, loggedIn: true}}) })() } useEffect(() => { if (authState.loggedIn) props.history.push("/") }, [authState.loggedIn, props.history]) return
Create Account
{error &&
{error}
} Username Email Password
; } export default Register;