merge from ecomp a88f0072 - Modern UI
[vid.git] / vid-webpack-master / src / app / shared / storeUtil / utils / global / global.reducers.ts
1 import {Action} from 'redux';
2 import {GlobalActions, UpdateFlagsAction, UpdateGlobalAction, UpdateDrawingBoardStatusAction} from "./global.actions";
3
4 export interface GlobalState {
5   name : string;
6   flags : { [key: string]: boolean };
7   drawingBoardStatus : string;
8 }
9
10 const initialState: GlobalState = {
11   name : null,
12   flags : null,
13   drawingBoardStatus : null
14 };
15
16 export const globalReducer =
17   function (state: GlobalState = initialState, action: Action): GlobalState {
18     switch (action.type) {
19       case GlobalActions.UPDATE_NAME:
20         return Object.assign(state, state, (<UpdateGlobalAction>action));
21       case GlobalActions.UPDATE_FLAGS:
22         Object.assign(state, (<UpdateFlagsAction>action));
23         return Object.assign({}, state);
24       case GlobalActions.UPDATE_DRAWING_BOARD_STATUS:
25         return Object.assign(state, state, (<UpdateDrawingBoardStatusAction>action));
26       default:
27         return state;
28     }
29   };