Page MenuHomePhorge

D14884.1765126939.diff
No OneTemporary

Size
3 KB
Referenced Files
None
Subscribers
None

D14884.1765126939.diff

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
@@ -1,11 +1,13 @@
// @flow
+import invariant from 'invariant';
+
import {
createUserDataBackupActionTypes,
createUserKeysBackupActionTypes,
} from '../actions/backup-actions.js';
import { changeIdentityUserPasswordActionTypes } from '../actions/user-actions.js';
-import type { BackupStore } from '../types/backup-types.js';
+import type { BackupStore, RestoreBackupState } from '../types/backup-types.js';
import type { BaseAction } from '../types/redux-types.js';
function reduceBackupStore(
@@ -34,4 +36,42 @@
return store;
}
-export { reduceBackupStore };
+function reduceRestoreBackupState(
+ store: RestoreBackupState,
+ action: BaseAction,
+): RestoreBackupState {
+ if (action.type === createUserKeysBackupActionTypes.started) {
+ return { ...store, status: 'user_keys_backup_started', payload: {} };
+ } else if (action.type === createUserKeysBackupActionTypes.success) {
+ invariant(
+ store.status === 'user_keys_backup_started' ||
+ store.status === 'no_backup',
+ 'UserKeys backup success dispatched but no backup was in progress',
+ );
+ return { ...store, status: 'user_keys_backup_success', payload: {} };
+ } else if (action.type === createUserKeysBackupActionTypes.failed) {
+ invariant(
+ store.status === 'user_keys_backup_started',
+ 'UserKeys backup failure dispatched but no backup was in progress',
+ );
+ return { ...store, status: 'user_keys_backup_failed', payload: {} };
+ } else if (action.type === createUserDataBackupActionTypes.started) {
+ return { ...store, status: 'user_data_backup_started', payload: {} };
+ } else if (action.type === createUserDataBackupActionTypes.success) {
+ invariant(
+ store.status === 'user_data_backup_started',
+ 'UserData backup success dispatched but no backup was in progress',
+ );
+ return { ...store, status: 'user_data_backup_success' };
+ } else if (action.type === createUserDataBackupActionTypes.failed) {
+ invariant(
+ store.status === 'user_data_backup_started',
+ 'UserData backup failure dispatched but no backup was in progress',
+ );
+ return { ...store, status: 'user_data_backup_failed' };
+ }
+
+ return store;
+}
+
+export { reduceBackupStore, reduceRestoreBackupState };
diff --git a/lib/reducers/master-reducer.js b/lib/reducers/master-reducer.js
--- a/lib/reducers/master-reducer.js
+++ b/lib/reducers/master-reducer.js
@@ -2,6 +2,7 @@
import { reduceAlertStore } from './alert-reducer.js';
import { reduceAuxUserStore } from './aux-user-reducer.js';
+import { reduceRestoreBackupState } from './backup-reducer.js';
import reduceCalendarFilters from './calendar-filters-reducer.js';
import { reduceCommunityStore } from './community-reducer.js';
import reduceCustomerServer from './custom-server-reducer.js';
@@ -263,6 +264,10 @@
),
queuedDMOperations,
holderStore: reduceHolderStore(state.holderStore, action),
+ restoreBackupState: reduceRestoreBackupState(
+ state.restoreBackupState,
+ action,
+ ),
},
storeOperations,
};
diff --git a/lib/types/backup-types.js b/lib/types/backup-types.js
--- a/lib/types/backup-types.js
+++ b/lib/types/backup-types.js
@@ -82,7 +82,32 @@
+latestDatabaseVersion?: number,
};
-export type RestoreBackupState = {
- status: 'no_backup',
- payload: {},
-};
+export type RestoreBackupState =
+ | {
+ status: 'no_backup',
+ payload: {},
+ }
+ | {
+ status: 'user_keys_backup_started',
+ payload: {},
+ }
+ | {
+ status: 'user_keys_backup_success',
+ payload: {},
+ }
+ | {
+ status: 'user_keys_backup_failed',
+ payload: {},
+ }
+ | {
+ status: 'user_data_backup_started',
+ payload: {},
+ }
+ | {
+ status: 'user_data_backup_success',
+ payload: {},
+ }
+ | {
+ status: 'user_data_backup_failed',
+ payload: {},
+ };

File Metadata

Mime Type
text/plain
Expires
Sun, Dec 7, 5:02 PM (17 h, 14 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5845119
Default Alt Text
D14884.1765126939.diff (3 KB)

Event Timeline