/* eslint-disable react/no-multi-comp */ import React, { useState } from "react"; import { makeStyles } from "@mui/styles"; import theme from '../theme.jsx'; import { useNavigate } from "react-router-dom"; import { CircularProgress, TextField, Button, Paper, Typography, } from "@mui/material"; const bodyDivStyle = { margin: "auto", marginTop: "100px", width: "500px", }; const surfaceColor = "#27292D"; const inputColor = "#383B40"; const boxStyle = { padding: 40, backgroundColor: theme.palette.backgroundColor, }; const useStyles = makeStyles({ notchedOutline: { borderColor: "#f85a3e !important", }, }); const AdminAccount = (props) => { const { globalUrl, isLoaded, isLoggedIn } = props; const [username, setUsername] = useState(""); const [password, setPassword] = useState(""); const [firstRequest, setFirstRequest] = useState(true); const [loginLoading, setLoginLoading] = useState(false); // Used to swap from login to register. True = login, false = register const register = true; let navigate = useNavigate(); const classes = useStyles(); // Error messages etc const [loginInfo, setLoginInfo] = useState(""); const handleValidateForm = () => { return username.length > 1 && password.length > 1; }; if (isLoggedIn === true) { window.location.pathname = "/workflows"; } const checkAdmin = () => { const url = globalUrl + "/api/v1/checkusers"; fetch(url, { method: "GET", headers: { "Content-Type": "application/json", }, }) .then((response) => response.json().then((responseJson) => { if (responseJson["success"] === false) { setLoginInfo(responseJson["reason"]); } else { if (responseJson.reason === "redirect") { setTimeout(() => { window.location.pathname = "/login"; }, 2500) } } }) ) .catch((error) => { setLoginInfo("Error in userdata (1): ", error); navigate("/loginsetup") }); }; if (firstRequest) { setFirstRequest(false); checkAdmin(); } const onSubmit = (e) => { setLoginLoading(true); e.preventDefault(); // FIXME - add some check here ROFL // Just use this one? var data = { username: username, password: password }; var baseurl = globalUrl; const url = baseurl + "/api/v1/register"; fetch(url, { method: "POST", body: JSON.stringify(data), headers: { "Content-Type": "application/json", }, }) .then((response) => response.json().then((responseJson) => { setLoginLoading(false); if (responseJson["success"] === false) { setLoginInfo(responseJson["reason"]); } else { setLoginInfo("Successful register :)"); setTimeout(() => { window.location.pathname = "/login"; }, 2500) } }) ) .catch((error) => { setLoginInfo("Error in userdata (2): ", error); setLoginLoading(false) navigate("/loginsetup") }); }; const onChangeUser = (e) => { setUsername(e.target.value); }; const onChangePass = (e) => { setPassword(e.target.value); }; //const onClickRegister = () => { // if (props.location.pathname === "/login") { // window.location.pathname = "/register" // } else { // window.location.pathname = "/login" // } // setLoginCheck(!register) //} //var loginChange = register ? (
Want to register? Click here.
Go back to login? Click here.