UNPKG

@shopgate/pwa-common-commerce

Version:

Commerce library for the Shopgate Connect PWA.

6 lines 1.47 kB
function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key];}}}return target;};return _extends.apply(this,arguments);}import{REQUEST_SEARCH_SUGGESTIONS,RECEIVE_SEARCH_SUGGESTIONS,SEARCH_SUGGESTIONS_LIFETIME}from"../constants";var initialState={suggestions:{}};/** * The search suggestions reducer. * @param {Object} [state={}] The current search suggestions state. * @param {Object} action The action object. * @return {Object} The updated search suggestions data. */var search=function search(){var state=arguments.length>0&&arguments[0]!==undefined?arguments[0]:initialState;var action=arguments.length>1?arguments[1]:undefined;switch(action.type){case REQUEST_SEARCH_SUGGESTIONS:return _extends({},state,{suggestions:_extends({},state.suggestions,_defineProperty({},action.searchPhrase,{isFetching:true,suggestions:[],expires:0}))});case RECEIVE_SEARCH_SUGGESTIONS:return _extends({},state,{suggestions:_extends({},state.suggestions,_defineProperty({},action.searchPhrase,{isFetching:false,suggestions:action.suggestions,expires:Date.now()+SEARCH_SUGGESTIONS_LIFETIME}))});default:return state;}};export default search;