/ common / features / message / reducer.ts
reducer.ts
 1  import * as types from './types';
 2  
 3  export const INITIAL_STATE: types.MessageState = {
 4    signed: null
 5  };
 6  
 7  function signLocalMessageSucceeded(
 8    state: types.MessageState,
 9    action: types.SignLocalMessageSucceededAction
10  ): types.MessageState {
11    return {
12      ...state,
13      signed: action.payload
14    };
15  }
16  
17  function signMessageFailed(state: types.MessageState): types.MessageState {
18    return {
19      ...state,
20      signed: null
21    };
22  }
23  
24  function resetMessage(): types.MessageState {
25    return {
26      ...INITIAL_STATE
27    };
28  }
29  
30  export function messageReducer(
31    state: types.MessageState = INITIAL_STATE,
32    action: types.MessageAction
33  ): types.MessageState {
34    switch (action.type) {
35      case types.MessageActions.SIGN_LOCAL_SUCCEEDED:
36        return signLocalMessageSucceeded(state, action);
37      case types.MessageActions.SIGN_FAILED:
38        return signMessageFailed(state);
39      case types.MessageActions.RESET:
40        return resetMessage();
41      default:
42        return state;
43    }
44  }