From 6d24cb5c539a1e39bfd79ace23a8c129396c5ae6 Mon Sep 17 00:00:00 2001 From: Hawk Date: Thu, 30 Apr 2020 20:27:19 +0200 Subject: [PATCH 1/8] added login feedback snackbar --- frontend/package-lock.json | 12 +++ frontend/package.json | 81 ++++++++++--------- .../src/components/login/createAccount.js | 8 +- frontend/src/components/login/login.js | 12 +-- .../src/components/login/loginfeedback.js | 51 ++++++++++++ 5 files changed, 115 insertions(+), 49 deletions(-) create mode 100644 frontend/src/components/login/loginfeedback.js diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 482ba0f..0c7b100 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -1292,6 +1292,18 @@ "@babel/runtime": "^7.4.4" } }, + "@material-ui/lab": { + "version": "4.0.0-alpha.51", + "resolved": "https://registry.npmjs.org/@material-ui/lab/-/lab-4.0.0-alpha.51.tgz", + "integrity": "sha512-X/qv/sZQGhXhKDn83L94gNahGDQj2Rd6r7/9tPpQbSn2A1LAt1+jlTiWD1HUgDXZEPqTsJMajOjWSEmTL7/q7w==", + "requires": { + "@babel/runtime": "^7.4.4", + "@material-ui/utils": "^4.9.6", + "clsx": "^1.0.4", + "prop-types": "^15.7.2", + "react-is": "^16.8.0" + } + }, "@material-ui/styles": { "version": "4.9.10", "resolved": "https://registry.npmjs.org/@material-ui/styles/-/styles-4.9.10.tgz", diff --git a/frontend/package.json b/frontend/package.json index e197578..870a97b 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,41 +1,42 @@ { - "name": "simcompanies-dashboard", - "version": "0.1.0", - "homepage": "https://projects.oliver.boehlk.io/simcompanies/", - "private": true, - "dependencies": { - "@material-ui/core": "^4.9.8", - "@material-ui/icons": "^4.9.1", - "@testing-library/jest-dom": "^4.2.4", - "@testing-library/react": "^9.4.0", - "@testing-library/user-event": "^7.2.1", - "react": "^16.12.0", - "react-dom": "^16.12.0", - "react-router-dom": "^5.1.2", - "react-scripts": "3.4.0", - "typeface-roboto": "0.0.75", - "recharts": "^1.8.5" - }, - "scripts": { - "start": "react-scripts start", - "build": "react-scripts build", - "test": "react-scripts test", - "eject": "react-scripts eject" - }, - "eslintConfig": { - "extends": "react-app" - }, - "browserslist": { - "production": [ - ">0.2%", - "not dead", - "not op_mini all" - ], - "development": [ - "last 1 chrome version", - "last 1 firefox version", - "last 1 safari version" - ] - }, - "proxy": "http://127.0.0.1:3001" -} \ No newline at end of file + "name": "simcompanies-dashboard", + "version": "0.1.0", + "homepage": "https://projects.oliver.boehlk.io/simcompanies/", + "private": true, + "dependencies": { + "@material-ui/core": "^4.9.8", + "@material-ui/icons": "^4.9.1", + "@material-ui/lab": "^4.0.0-alpha.51", + "@testing-library/jest-dom": "^4.2.4", + "@testing-library/react": "^9.4.0", + "@testing-library/user-event": "^7.2.1", + "react": "^16.12.0", + "react-dom": "^16.12.0", + "react-router-dom": "^5.1.2", + "react-scripts": "3.4.0", + "recharts": "^1.8.5", + "typeface-roboto": "0.0.75" + }, + "scripts": { + "start": "react-scripts start", + "build": "react-scripts build", + "test": "react-scripts test", + "eject": "react-scripts eject" + }, + "eslintConfig": { + "extends": "react-app" + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + }, + "proxy": "http://127.0.0.1:3001" +} diff --git a/frontend/src/components/login/createAccount.js b/frontend/src/components/login/createAccount.js index 541ea5c..f1d4c5d 100644 --- a/frontend/src/components/login/createAccount.js +++ b/frontend/src/components/login/createAccount.js @@ -10,6 +10,7 @@ import Logo from "../../img/logo.png"; import TextField from '@material-ui/core/TextField'; import Grid from '@material-ui/core/Grid'; import { Redirect } from "react-router-dom"; +import LoginFeedback from './loginfeedback'; const url = "/simcompanies/API/user/create" @@ -59,14 +60,12 @@ const CssTextField = withStyles({ }, })(TextField); - - export default function CreateAccount() { const classes = useStyles(); const [username, setUsername] = React.useState(""); const [password, setPassword] = React.useState(""); const [login, setLogin] = React.useState(true); - + const [status, setStatus] = React.useState(null); const putCreateAccount = async (url, data) => { const response = await fetch(url, { @@ -80,7 +79,7 @@ export default function CreateAccount() { referrerPolicy: 'no-referrer', body: JSON.stringify(data) }); - + setStatus(response.status) if (response.status == "200") { setLogin(false) } @@ -157,6 +156,7 @@ export default function CreateAccount() { + : ) diff --git a/frontend/src/components/login/login.js b/frontend/src/components/login/login.js index 3dc4036..10ba5ca 100644 --- a/frontend/src/components/login/login.js +++ b/frontend/src/components/login/login.js @@ -11,6 +11,7 @@ import TextField from '@material-ui/core/TextField'; import Grid from '@material-ui/core/Grid'; import Link1 from '@material-ui/core/Link'; import { Redirect } from "react-router-dom"; +import LoginFeedback from './loginfeedback'; const useStyles = makeStyles(theme => ({ @@ -33,7 +34,7 @@ const useStyles = makeStyles(theme => ({ const CssTextField = withStyles({ root: { '& label.Mui-focused': { - color: 'white', + color: "#FFC800", }, '&:hover label': { color: '#FFC800', @@ -53,7 +54,7 @@ const CssTextField = withStyles({ borderColor: "#FFC800", }, '&.Mui-focused fieldset': { - borderColor: 'white', + borderColor: "#FFC800", }, }, }, @@ -66,7 +67,7 @@ export default function Login() { const [username, setUsername] = React.useState(""); const [password, setPassword] = React.useState(""); const [login, setLogin] = React.useState(true); - + const [status, setStatus] = React.useState(null); const postLogin = async (url, data) => { const response = await fetch(url, { @@ -80,7 +81,7 @@ export default function Login() { referrerPolicy: 'no-referrer', body: JSON.stringify(data) }); - + setStatus(response.status) if (response.status == "200") { setLogin(false) } @@ -161,7 +162,7 @@ export default function Login() { + @@ -169,6 +170,7 @@ export default function Login() { + : ) diff --git a/frontend/src/components/login/loginfeedback.js b/frontend/src/components/login/loginfeedback.js new file mode 100644 index 0000000..3ac61d4 --- /dev/null +++ b/frontend/src/components/login/loginfeedback.js @@ -0,0 +1,51 @@ +import React, { useEffect } from 'react'; +import Snackbar from '@material-ui/core/Snackbar'; +import MuiAlert from '@material-ui/lab/Alert'; + +function Alert(props) { + return ; +} + +export default function LoginFeedback(props) { + const [login, setLogin] = React.useState(null); + const [open, setOpen] = React.useState(true); + const [open1, setOpen1] = React.useState(true); + useEffect(() => { + if (login != props.login) { + setLogin(props.login) + } + }, [login, setLogin, props.login]); + const handleClose = (event, reason) => { + setOpen(false); + }; + const handleClose1 = (event, reason) => { + setOpen1(false); + }; + + const snack = (login) => { + if (login == "200") { + return ( + + + {props.successText} + + ) + } else if (login != null) { + return ( + + + {props.errorText} + + + ) + } + } + + return ( + + {snack(login)} + + + ) + +} From 083f73ec2bce38ca32c97ce245170fa2ea999404 Mon Sep 17 00:00:00 2001 From: Hawk Date: Thu, 30 Apr 2020 21:27:54 +0200 Subject: [PATCH 2/8] added fixes --- .../src/components/login/createAccount.js | 23 +++++++++++++++---- frontend/src/components/login/login.js | 19 +++++++++++++++ .../src/components/login/loginfeedback.js | 21 ++++++++++++++--- 3 files changed, 56 insertions(+), 7 deletions(-) diff --git a/frontend/src/components/login/createAccount.js b/frontend/src/components/login/createAccount.js index f1d4c5d..c20e9cb 100644 --- a/frontend/src/components/login/createAccount.js +++ b/frontend/src/components/login/createAccount.js @@ -34,7 +34,7 @@ const useStyles = makeStyles(theme => ({ const CssTextField = withStyles({ root: { '& label.Mui-focused': { - color: 'white', + color: '#FFC800', }, '&:hover label': { color: '#FFC800', @@ -54,7 +54,7 @@ const CssTextField = withStyles({ borderColor: "#FFC800", }, '&.Mui-focused fieldset': { - borderColor: 'white', + borderColor: '#FFC800', }, }, }, @@ -83,9 +83,9 @@ export default function CreateAccount() { if (response.status == "200") { setLogin(false) } + setTimeout(() => { setStatus(null) }, 5000) } const handleClick = (e) => { - if (username !== "" && password !== "") { putCreateAccount(url, { email: username, password: password }) @@ -93,6 +93,17 @@ export default function CreateAccount() { setPassword("") } } + + const handleKeyDown = (e) => { + if (e.keyCode == 13) { + if (username !== "" && password !== "") { + putCreateAccount(url, { email: username, password: password }) + + setUsername("") + setPassword("") + } + } + } const handleChangeUSR = (e) => { setUsername(e.target.value) } @@ -121,18 +132,21 @@ export default function CreateAccount() { - diff --git a/frontend/src/components/login/login.js b/frontend/src/components/login/login.js index 10ba5ca..e34ab7a 100644 --- a/frontend/src/components/login/login.js +++ b/frontend/src/components/login/login.js @@ -70,6 +70,7 @@ export default function Login() { const [status, setStatus] = React.useState(null); const postLogin = async (url, data) => { + const response = await fetch(url, { method: 'POST', mode: 'cors', @@ -85,6 +86,8 @@ export default function Login() { if (response.status == "200") { setLogin(false) } + + setTimeout(() => { setStatus(null) }, 5000) } const handleClick = (e) => { @@ -96,6 +99,18 @@ export default function Login() { setPassword("") } } + + const handleKeyDown = (e) => { + if (e.keyCode == 13) { + if (username !== "" && password !== "") { + postLogin(url, { email: username, password: password }) + + setUsername("") + setPassword("") + } + } + } + const handleChangeUSR = (e) => { setUsername(e.target.value) } @@ -126,18 +141,21 @@ export default function Login() { diff --git a/frontend/src/components/login/loginfeedback.js b/frontend/src/components/login/loginfeedback.js index 3ac61d4..2cd55b3 100644 --- a/frontend/src/components/login/loginfeedback.js +++ b/frontend/src/components/login/loginfeedback.js @@ -10,12 +10,20 @@ export default function LoginFeedback(props) { const [login, setLogin] = React.useState(null); const [open, setOpen] = React.useState(true); const [open1, setOpen1] = React.useState(true); + const [output, setOutput] = React.useState(null); + const [change, setChange] = React.useState(false); + useEffect(() => { if (login != props.login) { + setChange(true) + setOpen(true) + setOpen1(true) setLogin(props.login) } }, [login, setLogin, props.login]); + const handleClose = (event, reason) => { + setOpen(false); }; const handleClose1 = (event, reason) => { @@ -24,26 +32,33 @@ export default function LoginFeedback(props) { const snack = (login) => { if (login == "200") { - return ( + setOutput( {props.successText} ) } else if (login != null) { - return ( + setOutput( {props.errorText} ) + } else { + setOutput(null) } + setChange(false) + } + + if (change == true) { + snack(login) } return ( - {snack(login)} + {output} ) From 4848b32b1ad46fe29616d2aa0718d5cae2f1c5cb Mon Sep 17 00:00:00 2001 From: Hawk Date: Thu, 30 Apr 2020 21:56:43 +0200 Subject: [PATCH 3/8] disable buttons and inputs while post. close #37 --- frontend/src/components/login/createAccount.js | 8 +++++++- frontend/src/components/login/login.js | 9 +++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/frontend/src/components/login/createAccount.js b/frontend/src/components/login/createAccount.js index c20e9cb..d334060 100644 --- a/frontend/src/components/login/createAccount.js +++ b/frontend/src/components/login/createAccount.js @@ -66,6 +66,7 @@ export default function CreateAccount() { const [password, setPassword] = React.useState(""); const [login, setLogin] = React.useState(true); const [status, setStatus] = React.useState(null); + const [button, setButton] = React.useState(false); const putCreateAccount = async (url, data) => { const response = await fetch(url, { @@ -83,10 +84,12 @@ export default function CreateAccount() { if (response.status == "200") { setLogin(false) } + setButton(false) setTimeout(() => { setStatus(null) }, 5000) } const handleClick = (e) => { if (username !== "" && password !== "") { + setButton(true) putCreateAccount(url, { email: username, password: password }) setUsername("") @@ -97,6 +100,7 @@ export default function CreateAccount() { const handleKeyDown = (e) => { if (e.keyCode == 13) { if (username !== "" && password !== "") { + setButton(true) putCreateAccount(url, { email: username, password: password }) setUsername("") @@ -140,6 +144,7 @@ export default function CreateAccount() { value={username} className={classes.input} onKeyDown={handleKeyDown} + disabled={button} /> @@ -156,12 +161,13 @@ export default function CreateAccount() { onChange={handleChangePW} className={classes.input} onKeyDown={handleKeyDown} + disabled={button} /> - diff --git a/frontend/src/components/login/login.js b/frontend/src/components/login/login.js index e34ab7a..670916a 100644 --- a/frontend/src/components/login/login.js +++ b/frontend/src/components/login/login.js @@ -68,6 +68,7 @@ export default function Login() { const [password, setPassword] = React.useState(""); const [login, setLogin] = React.useState(true); const [status, setStatus] = React.useState(null); + const [button, setButton] = React.useState(false); const postLogin = async (url, data) => { @@ -86,13 +87,14 @@ export default function Login() { if (response.status == "200") { setLogin(false) } - + setButton(false) setTimeout(() => { setStatus(null) }, 5000) } const handleClick = (e) => { if (username !== "" && password !== "") { + setButton(true) postLogin(url, { email: username, password: password }) setUsername("") @@ -103,6 +105,7 @@ export default function Login() { const handleKeyDown = (e) => { if (e.keyCode == 13) { if (username !== "" && password !== "") { + setButton(true) postLogin(url, { email: username, password: password }) setUsername("") @@ -149,6 +152,7 @@ export default function Login() { onChange={handleChangeUSR} className={classes.input} onKeyDown={handleKeyDown} + disabled={button} /> @@ -165,6 +169,7 @@ export default function Login() { onChange={handleChangePW} className={classes.input} onKeyDown={handleKeyDown} + disabled={button} /> @@ -179,7 +184,7 @@ export default function Login() { - From c964dfdb86d4150ef75d22f044a4374ce50024aa Mon Sep 17 00:00:00 2001 From: Hawk Date: Thu, 30 Apr 2020 22:06:08 +0200 Subject: [PATCH 4/8] edited status text --- frontend/src/components/login/createAccount.js | 6 ++++-- frontend/src/components/login/login.js | 6 ++++-- frontend/src/components/login/loginfeedback.js | 4 ++-- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/frontend/src/components/login/createAccount.js b/frontend/src/components/login/createAccount.js index d334060..535b093 100644 --- a/frontend/src/components/login/createAccount.js +++ b/frontend/src/components/login/createAccount.js @@ -66,6 +66,7 @@ export default function CreateAccount() { const [password, setPassword] = React.useState(""); const [login, setLogin] = React.useState(true); const [status, setStatus] = React.useState(null); + const [statusText, setStatusText] = React.useState(null); const [button, setButton] = React.useState(false); const putCreateAccount = async (url, data) => { @@ -81,6 +82,7 @@ export default function CreateAccount() { body: JSON.stringify(data) }); setStatus(response.status) + setStatusText(response.statusText) if (response.status == "200") { setLogin(false) } @@ -98,7 +100,7 @@ export default function CreateAccount() { } const handleKeyDown = (e) => { - if (e.keyCode == 13) { + if (e.key === "Enter") { if (username !== "" && password !== "") { setButton(true) putCreateAccount(url, { email: username, password: password }) @@ -177,7 +179,7 @@ export default function CreateAccount() { - + : ) diff --git a/frontend/src/components/login/login.js b/frontend/src/components/login/login.js index 670916a..2981f38 100644 --- a/frontend/src/components/login/login.js +++ b/frontend/src/components/login/login.js @@ -69,6 +69,7 @@ export default function Login() { const [login, setLogin] = React.useState(true); const [status, setStatus] = React.useState(null); const [button, setButton] = React.useState(false); + const [statusText, setStatusText] = React.useState(null); const postLogin = async (url, data) => { @@ -84,6 +85,7 @@ export default function Login() { body: JSON.stringify(data) }); setStatus(response.status) + setStatusText(response.statusText) if (response.status == "200") { setLogin(false) } @@ -103,7 +105,7 @@ export default function Login() { } const handleKeyDown = (e) => { - if (e.keyCode == 13) { + if (e.key === "Enter") { if (username !== "" && password !== "") { setButton(true) postLogin(url, { email: username, password: password }) @@ -194,7 +196,7 @@ export default function Login() { - + : ) diff --git a/frontend/src/components/login/loginfeedback.js b/frontend/src/components/login/loginfeedback.js index 2cd55b3..cecdfa5 100644 --- a/frontend/src/components/login/loginfeedback.js +++ b/frontend/src/components/login/loginfeedback.js @@ -35,14 +35,14 @@ export default function LoginFeedback(props) { setOutput( - {props.successText} + {props.text} ) } else if (login != null) { setOutput( - {props.errorText} + {props.text} ) From eb01399e04cc5973031bb0f2ee0a371a37b8e2e2 Mon Sep 17 00:00:00 2001 From: Oliver Boehlk Date: Thu, 30 Apr 2020 22:23:30 +0200 Subject: [PATCH 5/8] backend send details on error --- backend/index.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/backend/index.js b/backend/index.js index ca313a3..9a54914 100644 --- a/backend/index.js +++ b/backend/index.js @@ -72,7 +72,7 @@ app.use(passport.session()); app.get("*", function (req, res, next) { if (!serverStartupComplete) - return res.send("Server is starting..."); + return res.send("Server is starting... Please try again soon."); else return next(); }); @@ -96,7 +96,7 @@ passport.use('local-login', new LocalStrategy({ email = mysql.escape(email); connection.query(`SELECT * from user WHERE email = ${email} AND deactivated = 0`, function (err, rows) { if (err) { - return res.status(static.INTERNAL_SERVER_ERROR).send(); + return res.status(static.INTERNAL_SERVER_ERROR).send("error querying the database - Please contact sys admin"); } if (!rows.length) { return done(null, false); @@ -120,7 +120,7 @@ passport.deserializeUser(function (id, done) { }); app.post("/API/user/login", passport.authenticate('local-login'), function (req, res) { - res.status(status.OK).send(); + res.status(status.OK).send("login success"); }); app.put("/API/user/create", function (req, res) { @@ -130,11 +130,11 @@ app.put("/API/user/create", function (req, res) { password = mysql.escape(bcrypt.hashSync(password, saltRounds)); connection.query(`INSERT INTO user (deactivated, email, password) values (1, ${email}, ${password})`, function (err, rows) { if (err) - return res.send(status.INTERNAL_SERVER_ERROR).send(); + return res.send(status.INTERNAL_SERVER_ERROR).send("the user seems to exist already - if you think this is an error contact the sys admin"); return res.status(status.OK).send(); }); } else { - res.status(status.BAD_REQUEST).send(); + res.status(status.BAD_REQUEST).send("invalid data supplied"); } }); @@ -143,7 +143,7 @@ app.all("*", function (req, res, next) { return next(); } else { - res.status(status.UNAUTHORIZED).send(); + res.status(status.UNAUTHORIZED).send("please log in before using this site"); } }); @@ -171,7 +171,7 @@ app.get('/API/day', function (req, res) { }); } else - res.status(status.BAD_REQUEST).send("invalid data provided"); + res.status(status.BAD_REQUEST).send("invalid data range provided"); } else From 5bf47622efd919933e1f52b43106b0faee8b7029 Mon Sep 17 00:00:00 2001 From: Oliver Boehlk Date: Thu, 30 Apr 2020 22:25:27 +0200 Subject: [PATCH 6/8] bugfix createaccount backend feedback message --- backend/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/index.js b/backend/index.js index 9a54914..8d40b45 100644 --- a/backend/index.js +++ b/backend/index.js @@ -131,7 +131,7 @@ app.put("/API/user/create", function (req, res) { connection.query(`INSERT INTO user (deactivated, email, password) values (1, ${email}, ${password})`, function (err, rows) { if (err) return res.send(status.INTERNAL_SERVER_ERROR).send("the user seems to exist already - if you think this is an error contact the sys admin"); - return res.status(status.OK).send(); + return res.status(status.OK).send("account successfully created"); }); } else { res.status(status.BAD_REQUEST).send("invalid data supplied"); From 38b7a903d658083b2a75ddbfd287aa01a984f8f4 Mon Sep 17 00:00:00 2001 From: Hawk Date: Thu, 30 Apr 2020 22:34:47 +0200 Subject: [PATCH 7/8] fixed var names --- frontend/src/components/login/createAccount.js | 14 +++++++------- frontend/src/components/login/login.js | 17 +++++++++-------- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/frontend/src/components/login/createAccount.js b/frontend/src/components/login/createAccount.js index 535b093..08af8ed 100644 --- a/frontend/src/components/login/createAccount.js +++ b/frontend/src/components/login/createAccount.js @@ -67,7 +67,7 @@ export default function CreateAccount() { const [login, setLogin] = React.useState(true); const [status, setStatus] = React.useState(null); const [statusText, setStatusText] = React.useState(null); - const [button, setButton] = React.useState(false); + const [disabled, setDisabled] = React.useState(false); const putCreateAccount = async (url, data) => { const response = await fetch(url, { @@ -86,12 +86,12 @@ export default function CreateAccount() { if (response.status == "200") { setLogin(false) } - setButton(false) + setDisabled(false) setTimeout(() => { setStatus(null) }, 5000) } const handleClick = (e) => { if (username !== "" && password !== "") { - setButton(true) + setDisabled(true) putCreateAccount(url, { email: username, password: password }) setUsername("") @@ -102,7 +102,7 @@ export default function CreateAccount() { const handleKeyDown = (e) => { if (e.key === "Enter") { if (username !== "" && password !== "") { - setButton(true) + setDisabled(true) putCreateAccount(url, { email: username, password: password }) setUsername("") @@ -146,7 +146,7 @@ export default function CreateAccount() { value={username} className={classes.input} onKeyDown={handleKeyDown} - disabled={button} + disabled={disabled} /> @@ -163,13 +163,13 @@ export default function CreateAccount() { onChange={handleChangePW} className={classes.input} onKeyDown={handleKeyDown} - disabled={button} + disabled={disabled} /> - diff --git a/frontend/src/components/login/login.js b/frontend/src/components/login/login.js index 2981f38..54ddacf 100644 --- a/frontend/src/components/login/login.js +++ b/frontend/src/components/login/login.js @@ -68,7 +68,7 @@ export default function Login() { const [password, setPassword] = React.useState(""); const [login, setLogin] = React.useState(true); const [status, setStatus] = React.useState(null); - const [button, setButton] = React.useState(false); + const [disabled, setDisabled] = React.useState(false); const [statusText, setStatusText] = React.useState(null); const postLogin = async (url, data) => { @@ -85,18 +85,19 @@ export default function Login() { body: JSON.stringify(data) }); setStatus(response.status) - setStatusText(response.statusText) + console.log(response.body.text) + setStatusText("test") if (response.status == "200") { setLogin(false) } - setButton(false) + setDisabled(false) setTimeout(() => { setStatus(null) }, 5000) } const handleClick = (e) => { if (username !== "" && password !== "") { - setButton(true) + setDisabled(true) postLogin(url, { email: username, password: password }) setUsername("") @@ -107,7 +108,7 @@ export default function Login() { const handleKeyDown = (e) => { if (e.key === "Enter") { if (username !== "" && password !== "") { - setButton(true) + setDisabled(true) postLogin(url, { email: username, password: password }) setUsername("") @@ -154,7 +155,7 @@ export default function Login() { onChange={handleChangeUSR} className={classes.input} onKeyDown={handleKeyDown} - disabled={button} + disabled={disabled} /> @@ -171,7 +172,7 @@ export default function Login() { onChange={handleChangePW} className={classes.input} onKeyDown={handleKeyDown} - disabled={button} + disabled={disabled} /> @@ -186,7 +187,7 @@ export default function Login() { - From cb27a0946fb64af7dc172c2afe07fcd9b31f0d65 Mon Sep 17 00:00:00 2001 From: Hawk Date: Thu, 30 Apr 2020 23:01:01 +0200 Subject: [PATCH 8/8] edited labels --- backend/package.json | 2 +- frontend/src/components/login/createAccount.js | 7 ++++--- frontend/src/components/login/login.js | 10 ++++++---- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/backend/package.json b/backend/package.json index 536bbf7..6fd2b7a 100644 --- a/backend/package.json +++ b/backend/package.json @@ -27,4 +27,4 @@ "devDependencies": { "cross-env": "^7.0.2" } -} \ No newline at end of file +} diff --git a/frontend/src/components/login/createAccount.js b/frontend/src/components/login/createAccount.js index 08af8ed..3f3ed5f 100644 --- a/frontend/src/components/login/createAccount.js +++ b/frontend/src/components/login/createAccount.js @@ -81,13 +81,14 @@ export default function CreateAccount() { referrerPolicy: 'no-referrer', body: JSON.stringify(data) }); + const text = await response.text() + await setStatusText(text) setStatus(response.status) - setStatusText(response.statusText) if (response.status == "200") { - setLogin(false) + setTimeout(() => { setLogin(false) }, 2000) } setDisabled(false) - setTimeout(() => { setStatus(null) }, 5000) + setTimeout(() => { setStatus(null) }, 2000) } const handleClick = (e) => { if (username !== "" && password !== "") { diff --git a/frontend/src/components/login/login.js b/frontend/src/components/login/login.js index 54ddacf..6afb83e 100644 --- a/frontend/src/components/login/login.js +++ b/frontend/src/components/login/login.js @@ -84,14 +84,16 @@ export default function Login() { referrerPolicy: 'no-referrer', body: JSON.stringify(data) }); + + const text = await response.text() + await setStatusText(text) setStatus(response.status) - console.log(response.body.text) - setStatusText("test") if (response.status == "200") { - setLogin(false) + setTimeout(() => { setLogin(false) }, 2000) + } setDisabled(false) - setTimeout(() => { setStatus(null) }, 5000) + setTimeout(() => { setStatus(null) }, 2000) } const handleClick = (e) => {