From 6a4786a6910e90319c5c1906a85767c0fce99f23 Mon Sep 17 00:00:00 2001 From: OtavioStasiak Date: Fri, 13 Dec 2024 16:36:56 -0300 Subject: [PATCH 1/2] fix: inifite loading on two factor login --- app/actions/actionsTypes.ts | 3 ++- app/lib/services/connect.ts | 1 + app/reducers/login.ts | 8 ++++++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/app/actions/actionsTypes.ts b/app/actions/actionsTypes.ts index af1f261b3e7..d4b2e28c3f9 100644 --- a/app/actions/actionsTypes.ts +++ b/app/actions/actionsTypes.ts @@ -1,7 +1,8 @@ const REQUEST = 'REQUEST'; const SUCCESS = 'SUCCESS'; const FAILURE = 'FAILURE'; -const defaultTypes = [REQUEST, SUCCESS, FAILURE]; +const CANCEL = 'CANCEL'; +const defaultTypes = [REQUEST, SUCCESS, FAILURE, CANCEL]; function createRequestTypes(base = {}, types = defaultTypes): Record { const res: Record = {}; types.forEach(type => (res[type] = `${base}_${type}`)); diff --git a/app/lib/services/connect.ts b/app/lib/services/connect.ts index f62adc07f89..689467a0401 100644 --- a/app/lib/services/connect.ts +++ b/app/lib/services/connect.ts @@ -363,6 +363,7 @@ function loginTOTP(params: ICredentials, loginEmailPassword?: boolean, isFromWeb ); } catch { // twoFactor was canceled + store.dispatch({ type: 'LOGIN_CANCEL' }); return reject(); } } else { diff --git a/app/reducers/login.ts b/app/reducers/login.ts index 31414507e57..3f181c995ea 100644 --- a/app/reducers/login.ts +++ b/app/reducers/login.ts @@ -52,6 +52,14 @@ export default function login(state = initialState, action: TActionsLogin): ILog failure: false, error: {} }; + case types.LOGIN.CANCEL: + return { + ...state, + isFetching: false, + isAuthenticated: false, + failure: false, + error: {} + }; case types.LOGIN.SUCCESS: return { ...state, From ebbf3aec959d1d4dbe2f445007910363d867dae4 Mon Sep 17 00:00:00 2001 From: Diego Mello Date: Wed, 8 Jan 2025 14:38:53 -0300 Subject: [PATCH 2/2] Add else condition on loginRequest to trigger loginFailure --- app/actions/actionsTypes.ts | 3 +-- app/lib/services/connect.ts | 1 - app/reducers/login.ts | 8 -------- app/sagas/login.js | 2 ++ 4 files changed, 3 insertions(+), 11 deletions(-) diff --git a/app/actions/actionsTypes.ts b/app/actions/actionsTypes.ts index d4b2e28c3f9..af1f261b3e7 100644 --- a/app/actions/actionsTypes.ts +++ b/app/actions/actionsTypes.ts @@ -1,8 +1,7 @@ const REQUEST = 'REQUEST'; const SUCCESS = 'SUCCESS'; const FAILURE = 'FAILURE'; -const CANCEL = 'CANCEL'; -const defaultTypes = [REQUEST, SUCCESS, FAILURE, CANCEL]; +const defaultTypes = [REQUEST, SUCCESS, FAILURE]; function createRequestTypes(base = {}, types = defaultTypes): Record { const res: Record = {}; types.forEach(type => (res[type] = `${base}_${type}`)); diff --git a/app/lib/services/connect.ts b/app/lib/services/connect.ts index 689467a0401..f62adc07f89 100644 --- a/app/lib/services/connect.ts +++ b/app/lib/services/connect.ts @@ -363,7 +363,6 @@ function loginTOTP(params: ICredentials, loginEmailPassword?: boolean, isFromWeb ); } catch { // twoFactor was canceled - store.dispatch({ type: 'LOGIN_CANCEL' }); return reject(); } } else { diff --git a/app/reducers/login.ts b/app/reducers/login.ts index 3f181c995ea..31414507e57 100644 --- a/app/reducers/login.ts +++ b/app/reducers/login.ts @@ -52,14 +52,6 @@ export default function login(state = initialState, action: TActionsLogin): ILog failure: false, error: {} }; - case types.LOGIN.CANCEL: - return { - ...state, - isFetching: false, - isAuthenticated: false, - failure: false, - error: {} - }; case types.LOGIN.SUCCESS: return { ...state, diff --git a/app/sagas/login.js b/app/sagas/login.js index ebd123e5793..0d634d8a626 100644 --- a/app/sagas/login.js +++ b/app/sagas/login.js @@ -138,6 +138,8 @@ const handleLoginRequest = function* handleLoginRequest({ return; } yield put(logoutAction(true)); + } else { + yield put(loginFailure(e)); } } };