UNPKG

@shopgate/engage

Version:
25 lines 4.41 kB
import{createSelector}from'reselect';import{WISHLIST_MODE_PERSIST_ON_ADD,SHOP_SETTING_WISHLIST_MODE,SHOP_SETTING_IMAGES,SHOP_SETTING_IMAGES_PRODUCT_PLACEHOLDER,SHOP_SETTING_IMAGES_CATEGORY_PLACEHOLDER,SHOP_SETTING_IMAGES_FAVICON,SHOP_SETTING_NUMBER_OF_ADDRESS_LINES,SHOP_SETTING_GOOGLE_SITE_VERIFICATION_CODE,SHOP_SETTINGS_SHOW_CATEGORY_IMAGES,SHOP_SETTING_REGISTRATION_MODE,SHOP_SETTING_REGISTRATION_MODE_EXTENDED,SHOP_SETTING_LOAD_WISHLIST_ON_APP_START_ENABLED,SHOP_SETTING_WISHLIST_ITEM_QUANTITY_ENABLED,SHOP_SETTING_WISHLIST_ITEM_NOTES_ENABLED,SHOP_SETTING_SHOW_WISHLIST_ITEMS_COUNT_BADGE}from"../constants/shopSettings";/** * Retrieves the shopSettings state from the store. * @param {Object} state The current application state. * @return {Object} The locations state. */export var getState=function getState(state){var _state$settings;return(state===null||state===void 0?void 0:(_state$settings=state.settings)===null||_state$settings===void 0?void 0:_state$settings.shopSettings)||{};};/** * Creates a selector to retrieve a single shop setting. * @param {string} key The key of the shop setting * @param {*} [fallback=null] The fallback value when no value can be determined. * @returns {Function} */export var makeGetShopSettingByKey=function makeGetShopSettingByKey(key){var fallback=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;return createSelector(getState,function(state){return typeof(state===null||state===void 0?void 0:state[key])!=='undefined'?state===null||state===void 0?void 0:state[key]:fallback;});};/** * Creates a selector to retrieve multiple shop setting. * @param {Array} [keys=[]] Optional keys to filter. * @returns {Function} */export var makeGetShopSettings=function makeGetShopSettings(){var keys=arguments.length>0&&arguments[0]!==undefined?arguments[0]:[];return createSelector(getState,function(state){var result=Object.keys(state).filter(function(key){if(Array.isArray(keys)&&keys.length>0){return keys.includes(key);}return true;}).reduce(function(acc,key){if(state===null||state===void 0?void 0:state[key]){acc[key]=state[key];}return acc;},{});return result;});};/** Selects the current wishlist mode */export var getWishlistMode=makeGetShopSettingByKey(SHOP_SETTING_WISHLIST_MODE,WISHLIST_MODE_PERSIST_ON_ADD);var getShopSettingImages=makeGetShopSettingByKey(SHOP_SETTING_IMAGES,{});/** * Selects the placeholder image for products */export var getProductImagePlaceholder=createSelector(getShopSettingImages,function(images){return(images===null||images===void 0?void 0:images[SHOP_SETTING_IMAGES_PRODUCT_PLACEHOLDER])||null;});/** * Selects the placeholder image for products */export var getCategoryImagePlaceholder=createSelector(getShopSettingImages,function(images){return(images===null||images===void 0?void 0:images[SHOP_SETTING_IMAGES_CATEGORY_PLACEHOLDER])||null;});/** * Selects the placeholder image for products */export var getFavicon=createSelector(getShopSettingImages,function(images){return(images===null||images===void 0?void 0:images[SHOP_SETTING_IMAGES_FAVICON])||null;});/** * Selects the number of address lines for registration / address forms */export var getNumberOfAddressLines=makeGetShopSettingByKey(SHOP_SETTING_NUMBER_OF_ADDRESS_LINES,2);export var getGoogleSiteVerificationCode=makeGetShopSettingByKey(SHOP_SETTING_GOOGLE_SITE_VERIFICATION_CODE,'');export var getShowCategoryImages=makeGetShopSettingByKey(SHOP_SETTINGS_SHOW_CATEGORY_IMAGES,true);/** * Creates a selector to retrieve the current active registration mode. * When the selector returns "simple" the form will not contain any address related fields. */export var getRegistrationMode=makeGetShopSettingByKey(SHOP_SETTING_REGISTRATION_MODE,SHOP_SETTING_REGISTRATION_MODE_EXTENDED);export var getWishlistItemQuantityEnabled=makeGetShopSettingByKey(SHOP_SETTING_WISHLIST_ITEM_QUANTITY_ENABLED,false);export var getWishlistItemNotesEnabled=makeGetShopSettingByKey(SHOP_SETTING_WISHLIST_ITEM_NOTES_ENABLED,false);export var getLoadWishlistOnAppStartEnabled=makeGetShopSettingByKey(SHOP_SETTING_LOAD_WISHLIST_ON_APP_START_ENABLED,true);export var getShowWishlistItemsCountBadge=createSelector(getLoadWishlistOnAppStartEnabled,makeGetShopSettingByKey(SHOP_SETTING_SHOW_WISHLIST_ITEMS_COUNT_BADGE,true),function(loadWishlistOnAppStartEnabled,showWishlistItemsCountBadge){return loadWishlistOnAppStartEnabled?showWishlistItemsCountBadge:false;});