import * as React from 'react'; import { Link, RouteComponentProps } from 'react-router-dom'; import login from '@/api/auth/login'; import { httpErrorToHuman } from '@/api/http'; import NetworkErrorMessage from '@/components/NetworkErrorMessage'; import LoginFormContainer from '@/components/auth/LoginFormContainer'; type State = Readonly<{ errorMessage?: string; isLoading: boolean; username?: string; password?: string; }>; export default class LoginContainer extends React.PureComponent { state: State = { isLoading: false, }; submit = (e: React.FormEvent) => { e.preventDefault(); const { username, password } = this.state; this.setState({ isLoading: true }, () => { login(username!, password!) .then(response => { if (response.complete) { // @ts-ignore window.location = response.intended || '/'; return; } this.props.history.replace('/login/checkpoint', { token: response.confirmationToken, }); }) .catch(error => this.setState({ isLoading: false, errorMessage: httpErrorToHuman(error), }, () => console.error(error))); }); }; canSubmit () { if (!this.state.username || !this.state.password) { return false; } return this.state.username.length > 0 && this.state.password.length > 0; } // @ts-ignore handleFieldUpdate = (e: React.ChangeEvent) => this.setState({ [e.target.id]: e.target.value, }); render () { return (

Login to Continue

Forgot password?
); } }