import { CommunityListActions, CommunityListActionTypes, CommunityListSaveAction, } from './community-list.actions'; import { FlatNode } from './flat-node.model'; /** * States we wish to put in store concerning the community list */ export interface CommunityListState { expandedNodes: FlatNode[]; loadingNode: FlatNode; } /** * Initial starting state of the list of expandedNodes and the current loading node of the community list */ const initialState: CommunityListState = { expandedNodes: [], loadingNode: null, }; /** * Reducer to interact with store concerning objects for the community list * @constructor */ export function CommunityListReducer(state = initialState, action: CommunityListActions) { switch (action.type) { case CommunityListActionTypes.SAVE: { return Object.assign({}, state, { expandedNodes: (action as CommunityListSaveAction).payload.expandedNodes, loadingNode: (action as CommunityListSaveAction).payload.loadingNode, }); } default: { return state; } } }