UNPKG

ih-black-lion

Version:

State handler for Arus projects

35 lines (32 loc) 1.11 kB
import matchSorter from 'match-sorter'; import { request, invalidate, receive, initState, toArray } from '../boilerplate'; import { REQUEST_CHECKLIST, RECEIVE_CHECKLIST, INVALIDATE_CHECKLIST, SEARCH_CHECKLIST } from '../actionTypes'; function search(state, action) { let searchResults = []; if (action.searchString.length > 1 && state.data.items.length > 0) { const checkLists = state.data.items; const checkListResults = matchSorter(toArray(checkLists), action.searchString, { keys: ['checklistCdDescr', 'information'], threshold: matchSorter.rankings.WORD_STARTS_WITH, }); searchResults = checkListResults; } const nextState = { searchResults, }; return { ...state, ...nextState }; } export default function(state = initState, action) { switch (action.type) { case REQUEST_CHECKLIST: return request(state, action); case RECEIVE_CHECKLIST: return receive(state, action); case INVALIDATE_CHECKLIST: return invalidate(state, action); case SEARCH_CHECKLIST: return search(state, action); default: return state; } }