feat: Remove the login stub

This commit is contained in:
Alexander Polynomdivision
2018-09-16 17:16:24 +02:00
parent 1dfdd2f409
commit 2cadcec370
5 changed files with 63 additions and 20 deletions

View File

@@ -10,8 +10,10 @@ import Snackbar from "@material-ui/core/Snackbar";
import { Redirect } from "react-router-dom";
import { IUser } from "../models/user";
interface IProps {
login: (username: string, password: string) => Promise<boolean>;
login: (username: string, password: string) => Promise<IUser | {}>;
loggedIn: boolean;
}
@@ -25,14 +27,14 @@ interface IState {
open: boolean;
}
export default class LoginPage extends React.Component<{}, IState> {
export default class LoginPage extends React.Component<IProps, IState> {
constructor(props: any) {
super(props);
this.state = {
username: "",
password: "",
loading: false;
loading: false,
snack: "",
open: false,
};
@@ -50,12 +52,12 @@ export default class LoginPage extends React.Component<{}, IState> {
}
performLogin() {
const load = (loading) => {
const load = (loading: boolean) => {
this.setState({
loading
});
}
const showSnackbar = (msg) => {
const showSnackbar = (msg: string) => {
this.setState({
open: true,
snack: msg,
@@ -65,9 +67,10 @@ export default class LoginPage extends React.Component<{}, IState> {
load(true);
const { username, password } = this.state;
this.props.login(username, password).then((res) => {
console.log(this.state);
this.props.login(username, password).then((res: IUser) => {
// Set the session key
window.sessionStorage.setItem("authKey", "test123");
window.sessionStorage.setItem("sessionToken", res.sessionToken);
}, (err) => {
load(false);
showSnackbar("Failed to log in");
@@ -94,13 +97,15 @@ export default class LoginPage extends React.Component<{}, IState> {
<Grid item>
<TextField
label="Username"
onChange={(ev) => this.update("username")} />
onChange={this.update("username")}
value={this.state.username} />
</Grid>
<Grid item>
<TextField
label="Passwort"
type="password"
onChange={(ev) => this.update("password")} />
value={this.state.password}
onChange={this.update("password")} />
</Grid>
<Grid item>
<Button

View File

@@ -7,6 +7,7 @@ import Grid from "@material-ui/core/Grid";
import Button from "@material-ui/core/Button";
import Typography from "@material-ui/core/Typography";
import Popover from "@material-ui/core/Popover";
import LinearProgress from "@material-ui/core/LinearProgress";
import { Redirect } from "react-router-dom";
@@ -177,6 +178,8 @@ export default class ReviewPage extends React.Component<IProps, IState> {
render() {
const { question, qtype } = this.state.current;
const questionTitle = `${question} (${reviewQTypeToStr(qtype)})`;
// TODO:
const progress = 50;
return <div>
{
@@ -204,6 +207,9 @@ export default class ReviewPage extends React.Component<IProps, IState> {
if (ev.key === "Enter")
this.checkInput();
}} />
<LinearProgress
variant="determinate"
value={progress} />
<Popover
open={this.state.popoverOpen}
anchorOrigin={{