You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

25 lines
840 B

  1. import { Map as ImmutableMap, fromJS } from 'immutable';
  2. import {
  3. IDENTITY_PROOFS_ACCOUNT_FETCH_REQUEST,
  4. IDENTITY_PROOFS_ACCOUNT_FETCH_SUCCESS,
  5. IDENTITY_PROOFS_ACCOUNT_FETCH_FAIL,
  6. } from '../actions/identity_proofs';
  7. const initialState = ImmutableMap();
  8. export default function identityProofsReducer(state = initialState, action) {
  9. switch(action.type) {
  10. case IDENTITY_PROOFS_ACCOUNT_FETCH_REQUEST:
  11. return state.set('isLoading', true);
  12. case IDENTITY_PROOFS_ACCOUNT_FETCH_FAIL:
  13. return state.set('isLoading', false);
  14. case IDENTITY_PROOFS_ACCOUNT_FETCH_SUCCESS:
  15. return state.update(identity_proofs => identity_proofs.withMutations(map => {
  16. map.set('isLoading', false);
  17. map.set('loaded', true);
  18. map.set(action.accountId, fromJS(action.identity_proofs));
  19. }));
  20. default:
  21. return state;
  22. }
  23. };