UNPKG

loop-modules

Version:

Shared modules for the Loop product suite.

36 lines (34 loc) 1.33 kB
import { LoopTopicState, initialState } from '../states/loop-topic.state'; import { Actions, ActionTypes } from '../actions/loop-topic.action'; import { LoopTopic } from '../interfaces/loop-topic.interface'; export function reducer( state: LoopTopicState = initialState, action: Actions ): LoopTopicState { switch (action.type) { case ActionTypes.QUERY: return (<any>Object).assign({}, state, { entries: [...state.entries, ...action.payload] }); case ActionTypes.ADD_SELECTED: return (<any>Object).assign({}, state, { selectedEntries: [...state.selectedEntries, ...action.payload] }); case ActionTypes.REMOVE_SELECTED: return (<any>Object).assign({}, state, { selectedEntries: state.selectedEntries.filter((value: LoopTopic) => { return (action.payload.indexOf(value) === -1); }) }); case ActionTypes.SET_ENTRIES: return (<any>Object).assign({}, state, { entries: action.payload }); case ActionTypes.SET_SELECTED: return (<any>Object).assign({}, state, { selectedEntries: action.payload }); default: return state; } }