UNPKG

ih-black-lion

Version:

State handler for Arus projects

43 lines (40 loc) 1.31 kB
import matchSorter from 'match-sorter'; import { request, invalidate, receive, initState, toArray } from '../boilerplate'; import { REQUEST_SERVICE_INDICATORS, RECEIVE_SERVICE_INDICATORS, INVALIDATE_SERVICE_INDICATORS, SEARCH_SERVICE_INDICATORS, } from '../actionTypes'; function search(state, action) { let searchResults = []; if (action.searchString.length > 1 && state.data.items.length > 0) { const serviceIndicators = state.data.items; const serviceIndicatorsResults = matchSorter(toArray(serviceIndicators), action.searchString, { keys: ['srvcIndCdDescr', 'information', 'srvcIndReasonDescr'], threshold: matchSorter.rankings.WORD_STARTS_WITH, }); searchResults = serviceIndicatorsResults; } const nextState = { searchResults, lastAction: { type: SEARCH_SERVICE_INDICATORS, }, }; return { ...state, ...nextState }; } export default function(state = initState, action) { switch (action.type) { case REQUEST_SERVICE_INDICATORS: return request(state, action); case RECEIVE_SERVICE_INDICATORS: return receive(state, action); case INVALIDATE_SERVICE_INDICATORS: return invalidate(state, action); case SEARCH_SERVICE_INDICATORS: return search(state, action); default: return state; } }