UNPKG

@shopgate/engage

Version:
15 lines 2.49 kB
import{isBeta,isAfter,isBefore,addDuration}from'@shopgate/engage/core/helpers';import{getThemeSettings}from'@shopgate/engage/core/config';import{ALWAYS,NEVER}from"./constants";/** * Build params to fetch category products * @returns {Object|{showScheduled: string}} */export var buildShowScheduledParams=function buildShowScheduledParams(){if(!isBeta()){return{};}var cachedTime=null;var _ref=getThemeSettings('product')||{},_ref$effectivityDates=_ref.effectivityDates,_ref$effectivityDates2=_ref$effectivityDates===void 0?{}:_ref$effectivityDates,showScheduled=_ref$effectivityDates2.showScheduled;if(showScheduled===ALWAYS){showScheduled='P1Y';}else if(showScheduled===NEVER){showScheduled='PT0S';cachedTime=60000;// 1 minute min effective precision }return{cachedTime:cachedTime,params:{showScheduled:showScheduled}};};/** * Decide if startDate hint should be shown * @param {Date} startDate product.startDate * @param {Object} [settings=null] settings * @returns {boolean} */export var showScheduledLabel=function showScheduledLabel(startDate){var settings=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;if(!startDate||!startDate.getDate()){return false;}var now=new Date();if(isBefore(startDate,now)){return false;}var _ref2=settings||{},_ref2$scheduledProduc=_ref2.scheduledProducts,_ref2$scheduledProduc2=_ref2$scheduledProduc===void 0?{}:_ref2$scheduledProduc,_ref2$scheduledProduc3=_ref2$scheduledProduc2.showLabels,showLabels=_ref2$scheduledProduc3===void 0?ALWAYS:_ref2$scheduledProduc3;if(showLabels===NEVER){return false;}if(showLabels===ALWAYS){return true;}var cloned=new Date(startDate.getTime());addDuration(cloned,"-".concat(showLabels));return isAfter(now,cloned);};/** * Decide if endDate hint should be shown * @param {Date} endDate product.endDate * @param {Object} [settings=null] settings default global settings * @returns {boolean} */export var showExpiringLabel=function showExpiringLabel(endDate,settings){if(!endDate||!endDate.getDate()){return false;}var _ref3=settings||{},_ref3$expiringProduct=_ref3.expiringProducts,_ref3$expiringProduct2=_ref3$expiringProduct===void 0?{}:_ref3$expiringProduct,_ref3$expiringProduct3=_ref3$expiringProduct2.showLabels,showLabels=_ref3$expiringProduct3===void 0?ALWAYS:_ref3$expiringProduct3;if(showLabels===NEVER){return false;}if(showLabels===ALWAYS){return true;}var now=new Date();var cloned=new Date(endDate.getTime());addDuration(cloned,"-".concat(showLabels));return isAfter(now,cloned);};