UNPKG

loop-modules

Version:

Shared modules for the Loop product suite.

36 lines (34 loc) 1.35 kB
import { LoopDocumentState, initialState } from '../states/loop-document.state'; import { Actions, ActionTypes } from '../actions/loop-document.action'; import { LoopDocument } from '../interfaces/loop-document.interface'; export function reducer( state: LoopDocumentState = initialState, action: Actions ): LoopDocumentState { 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: LoopDocument) => { 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; } }