UNPKG

@shopgate/pwa-common-commerce

Version:

Commerce library for the Shopgate Connect PWA.

6 lines 2.16 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_USER_REVIEW,REQUEST_SUBMIT_REVIEW,RECEIVE_USER_REVIEW,RECEIVE_SUBMIT_REVIEW,ERROR_USER_REVIEW,ERROR_SUBMIT_REVIEW,RESET_SUBMIT_REVIEW,FLUSH_USER_REVIEWS,USER_REVIEW_LIFETIME}from"../constants";/** * Stores product reviews by their product ID. * @param {Object} [state={}] The current state. * @param {Object} action The action object. * @return {Object} The new state. */export default function userReviewsByProductId(){var state=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var action=arguments.length>1?arguments[1]:undefined;switch(action.type){case REQUEST_USER_REVIEW:return _extends({},state,_defineProperty({},action.productId,_extends({},state[action.productId],{isFetching:true,review:'',expires:0})));case RECEIVE_USER_REVIEW:return _extends({},state,_defineProperty({},action.productId,_extends({},state[action.productId],{isFetching:false,review:action.review.id,expires:Date.now()+USER_REVIEW_LIFETIME})));case ERROR_SUBMIT_REVIEW:case ERROR_USER_REVIEW:{var newState=_extends({},state);delete newState[action.productId];return newState||{};}case REQUEST_SUBMIT_REVIEW:return _extends({},state,_defineProperty({},action.review.productId,_extends({},state[action.review.productId],{isFetching:true,expires:0})));case RECEIVE_SUBMIT_REVIEW:return _extends({},state,_defineProperty({},action.review.productId,{isFetching:false,review:action.review.id,expires:action.review.id?Date.now()+USER_REVIEW_LIFETIME:0}));case RESET_SUBMIT_REVIEW:return _extends({},state,_defineProperty({},action.review.productId,_extends({},state[action.review.productId],{isFetching:false,review:action.review.id})));case FLUSH_USER_REVIEWS:return{};default:return state;}}