From 42e584ca72f4cc7664f0a5897923d4e41efa8aba Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Mon, 6 Apr 2020 16:20:03 -0500 Subject: [PATCH] Disable auth form during requests --- app/gabsocial/features/auth_login/index.js | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/app/gabsocial/features/auth_login/index.js b/app/gabsocial/features/auth_login/index.js index 91b4a01bd..49dea9e98 100644 --- a/app/gabsocial/features/auth_login/index.js +++ b/app/gabsocial/features/auth_login/index.js @@ -4,6 +4,7 @@ import ImmutablePureComponent from 'react-immutable-pure-component'; import { createAuthApp, logIn } from 'gabsocial/actions/auth'; import { Redirect } from 'react-router-dom'; import { fetchMe } from 'gabsocial/actions/me'; +import { LoadingBar } from 'react-redux-loading-bar'; const mapStateToProps = (state, props) => ({ me: state.get('me'), @@ -11,6 +12,11 @@ const mapStateToProps = (state, props) => ({ class LoginForm extends ImmutablePureComponent { + constructor(props) { + super(props); + this.state = {isLoading: false}; + } + componentWillMount() { this.props.dispatch(createAuthApp()); } @@ -25,21 +31,27 @@ class LoginForm extends ImmutablePureComponent { const { dispatch } = this.props; const { username, password } = this.getFormData(event.target); dispatch(logIn(username, password)).then(() => { - dispatch(fetchMe()); + return dispatch(fetchMe()); + }).catch(() => { + // TODO: Handle bad request + this.setState({isLoading: false}); }); + this.setState({isLoading: true}); event.preventDefault(); } render() { const { me } = this.props; - if (me) return ; return (
- - - + +
+ + + +
) }