/* eslint-disable react/no-multi-comp */ import React, {useState} from 'react'; import { makeStyles } from '@material-ui/styles'; import TextField from '@material-ui/core/TextField'; import Button from '@material-ui/core/Button'; import Paper from '@material-ui/core/Paper'; const hrefStyle = { color: "white", textDecoration: "none" } const bodyDivStyle = { margin: "auto", marginTop: "100px", width: "500px", } const surfaceColor = "#27292D" const inputColor = "#383B40" const boxStyle = { paddingLeft: "30px", paddingRight: "30px", paddingBottom: "30px", paddingTop: "30px", backgroundColor: surfaceColor, } const useStyles = makeStyles({ notchedOutline: { borderColor: "#f85a3e !important" }, }); const AdminAccount = props => { const { globalUrl, isLoaded, isLoggedIn, setIsLoggedIn, setCookie, } = props; const [username, setUsername] = useState(""); const [password, setPassword] = useState(""); const [firstRequest, setFirstRequest] = useState(true); // Used to swap from login to register. True = login, false = register const register = true 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") { window.location.pathname = "/login" } } }), ) .catch(error => { setLoginInfo("Error in userdata: ", error) }) } if (firstRequest) { setFirstRequest(false) checkAdmin() } const onSubmit = (e) => { 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 => { if (responseJson["success"] === false) { setLoginInfo(responseJson["reason"]) } else { setLoginInfo("Successful register :)") window.location.pathname = "/login" } }), ) .catch(error => { setLoginInfo("Error in userdata: ", error) }); } 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.

); var formtitle = register ?
Login
:
Register
formtitle = "Create administrator account" const basedata =

{formtitle}

Username
Password
{loginInfo}
const loadedCheck = isLoaded ?
{basedata}
:
return (
{loadedCheck}
) } export default AdminAccount;