diff --git a/lib/actions/backup-actions.js b/lib/actions/backup-actions.js --- a/lib/actions/backup-actions.js +++ b/lib/actions/backup-actions.js @@ -25,8 +25,13 @@ failed: 'RESTORE_USER_DATA_STEP_FAILED', }); +const resetBackupRestoreStateActionType = 'RESET_BACKUP_RESTOTE_STATE'; +const markBackupAsRestoredActionType = 'MARK_BACKUP_AS_RESTORED'; + export { createUserKeysBackupActionTypes, createUserDataBackupActionTypes, restoreUserDataStepActionTypes, + resetBackupRestoreStateActionType, + markBackupAsRestoredActionType, }; diff --git a/lib/reducers/backup-reducer.js b/lib/reducers/backup-reducer.js --- a/lib/reducers/backup-reducer.js +++ b/lib/reducers/backup-reducer.js @@ -6,9 +6,12 @@ createUserDataBackupActionTypes, createUserKeysBackupActionTypes, restoreUserDataStepActionTypes, + markBackupAsRestoredActionType, + resetBackupRestoreStateActionType, } from '../actions/backup-actions.js'; import { changeIdentityUserPasswordActionTypes, + logOutActionTypes, restoreUserActionTypes, } from '../actions/user-actions.js'; import { @@ -60,6 +63,23 @@ return store; } + if ( + action.type === resetBackupRestoreStateActionType || + action.type === logOutActionTypes.success + ) { + return { + ...store, + status: 'no_backup', + payload: {}, + }; + } else if (action.type === markBackupAsRestoredActionType) { + return { + ...store, + status: 'user_data_restore_completed', + payload: {}, + }; + } + if (action.type === restoreUserActionTypes.success) { invariant( store.status === 'no_backup', diff --git a/lib/types/redux-types.js b/lib/types/redux-types.js --- a/lib/types/redux-types.js +++ b/lib/types/redux-types.js @@ -1679,6 +1679,14 @@ +payload: RestoreProtocolResult, +loadingInfo: LoadingInfo, } + | { + +type: 'RESET_BACKUP_RESTOTE_STATE', + +payload?: void, + } + | { + +type: 'MARK_BACKUP_AS_RESTORED', + +payload?: void, + } | { +type: 'SAVE_UNSUPPORTED_DM_OPERATION', +payload: SaveUnsupportedOperationPayload,