Bachelorthesis_Code/frontend/src/components/pages/Login.js
cami 04cdc9dd7e Added various css things
- Designed login and register buttons
- removed some unnecessary css things
- changed some small things in the design
2021-06-23 03:16:09 +02:00

79 lines
2 KiB
JavaScript

import React from "react";
import { useState } from "react/cjs/react.development";
import "../../App.css";
import Footer from "../../Footer";
import InputField from "../InputField";
import SubmitField from "../SubmitField";
import { login, useAuth, logout } from "../../auth/AuthProvider";
import Secret from "./Secret";
export default function Login() {
const [username, setUsername] = useState("");
const [password, setPassword] = useState("");
const onSubmitClick = (e) => {
e.preventDefault();
let opts = {
username: username,
password: password,
};
console.log(opts);
fetch("/api/login", {
method: "post",
body: JSON.stringify(opts),
})
.then((r) => r.json())
.then((token) => {
if (token.access_token) {
login(token);
} else {
console.log("Please type in the correct username / password");
}
});
};
const handleUsernameChange = (e) => {
setUsername(e.target.value);
};
const handlePasswordChange = (e) => {
setPassword(e.target.value);
};
const [logged] = useAuth();
return (
<>
<div className="sitePage">
<h1>Login</h1>
{!logged ? (
<form action="#">
<InputField
LabelName="Benutzername"
onChange={handleUsernameChange}
InputType="text"
InputName="username"
InputPlaceHolder="Benutzername"
/>
<InputField
LabelName="Passwort"
InputType="password"
onChange={handlePasswordChange}
InputName="password"
InputPlaceHolder="Passwort"
/>
<br />
<SubmitField onClick={onSubmitClick} LabelName="Einloggen" />
</form>
) : (
<>
<Secret />
<button onClick={() => logout()}>Logout</button>
</>
)}
</div>
<Footer />
</>
);
}