public/js/reducers/searchSuggestionsReducer.js (32 lines of code) (raw):
export default function suggestions(state = {}, action) {
switch(action.type) {
case 'SEARCH_SUGGESTIONS_CANCEL':
return Object.assign({}, state, {
[action.id]: {
queryStr: '',
query: null,
results: null
}
});
case 'SEARCH_SUGGESTIONS_UPDATE':
return Object.assign({}, state, {
[action.id]: Object.assign({}, state[action.id], {
queryStr: action.queryStr
})
});
case 'SEARCH_SUGGESTIONS_SEARCH_REQUEST':
return Object.assign({}, state, {
[action.id]: Object.assign({}, state[action.id], {
query: action.query
})
});
case 'SEARCH_SUGGESTIONS_SEARCH_RESPONSE':
return Object.assign({}, state, {
[action.id]: Object.assign({}, state[action.id], {
results: action.results
})
});
default:
return state;
}
}