UNPKG

animiassumenda

Version:

Blox live, desktop app for managing staking accounts

84 lines (79 loc) 2.98 kB
import produce from 'immer'; import * as actionTypes from '~app/components/KeyVaultManagement/actionTypes'; import { LOGOUT } from '~app/components/Login/components/CallbackPage/actionTypes'; const initialState = { isLoading: false, error: '', cloudProvider: '', mnemonic: '', latestVersion: '', isRecoveryValid: false, areAwsKeysValid: false, }; /* eslint-disable default-case, no-param-reassign */ const KeyVaultManagementReducer = (state = initialState, action: Action) => produce(state, (draft) => { switch (action.type) { case actionTypes.KEYVAULT_SET_COLUD_PROVIDER: draft.cloudProvider = action.payload; break; case actionTypes.KEYVAULT_LOAD_MNEMONIC: case actionTypes.KEYVAULT_SAVE_MNEMONIC: case actionTypes.KEYVAULT_LOAD_LATEST_VERSION: case actionTypes.KEYVAULT_VALIDATE_PASSPHRASE: draft.isLoading = true; break; case actionTypes.VALIDATE_RECOVERY_CREDENTIALS: case actionTypes.VALIDATE_AWS_KEYS: draft.isLoading = true; draft.error = initialState.error; break; case actionTypes.KEYVAULT_LOAD_MNEMONIC_SUCCESS: draft.mnemonic = action.payload; draft.isLoading = initialState.isLoading; break; case actionTypes.KEYVAULT_SAVE_MNEMONIC_SUCCESS: case actionTypes.VALIDATE_RECOVERY_CREDENTIALS_SUCCESS: draft.isLoading = initialState.isLoading; draft.isRecoveryValid = true; break; case actionTypes.VALIDATE_AWS_KEYS_SUCCESS: draft.isLoading = initialState.isLoading; draft.areAwsKeysValid = true; break; case actionTypes.KEYVAULT_LOAD_LATEST_VERSION_SUCCESS: draft.latestVersion = action.payload; draft.isLoading = initialState.isLoading; break; case actionTypes.KEYVAULT_LOAD_MNEMONIC_FAILURE: case actionTypes.KEYVAULT_SAVE_MNEMONIC_FAILURE: case actionTypes.KEYVAULT_LOAD_LATEST_VERSION_FAILURE: case actionTypes.KEYVAULT_VALIDATE_PASSPHRASE_FAILURE: case actionTypes.VALIDATE_RECOVERY_CREDENTIALS_FAILURE: case actionTypes.VALIDATE_AWS_KEYS_FAILURE: draft.error = action.payload.message; draft.isLoading = initialState.isLoading; break; case actionTypes.VALIDATE_RECOVERY_CREDENTIALS_CLEAR: draft.error = initialState.error; draft.isRecoveryValid = initialState.isRecoveryValid; break; case actionTypes.VALIDATE_AWS_KEYS_CLEAR: draft.error = initialState.error; draft.isRecoveryValid = initialState.areAwsKeysValid; break; case actionTypes.KEYVAULT_CLEAR_DATA: case LOGOUT: draft.isLoading = initialState.isLoading; draft.error = initialState.error; draft.cloudProvider = initialState.cloudProvider; draft.mnemonic = initialState.mnemonic; draft.latestVersion = initialState.latestVersion; draft.isRecoveryValid = initialState.isRecoveryValid; break; } }); type Action = { type: string; payload: any; }; export default KeyVaultManagementReducer;