@shopgate/engage
Version:
Shopgate's ENGAGE library.
39 lines • 3.78 kB
JavaScript
import{createSelector}from'reselect';/**
* Retrieves the config state from the store.
* @param {Object} state The current application state.
* @return {Object} The locations state.
*/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.config)||{};}/**
* Creates the selector that retrieves the config.
* @returns {Function}
*/export function makeGetConfig(){/**
* @param {Object} state The application state.
* @returns {Object}
*/return createSelector(getState,function(state){return state;});}/**
* Creates the selector that retrieves the merchant settings.
* @returns {Function}
*/export function makeGetMerchantSettings(){/**
* @param {Object} state The application state.
* @returns {Object}
*/return createSelector(getState,function(state){return state.merchantSettings||{};});}/**
* Selector that retrieves the shop settings.
* @param {Object} state The application state.
* @returns {Object}
*/export var getShopSettings=function getShopSettings(state){var _state$settings2,_state$settings2$conf;return(state===null||state===void 0?void 0:(_state$settings2=state.settings)===null||_state$settings2===void 0?void 0:(_state$settings2$conf=_state$settings2.config)===null||_state$settings2$conf===void 0?void 0:_state$settings2$conf.shopSettings)||{};};/**
* Selector that retrieves whether the config is still fetching.
* @param {Object} state The application state.
* @returns {Object}
*/export var getConfigFetching=function getConfigFetching(state){var _state$settings3,_state$settings3$conf;return(state===null||state===void 0?void 0:(_state$settings3=state.settings)===null||_state$settings3===void 0?void 0:(_state$settings3$conf=_state$settings3.config)===null||_state$settings3$conf===void 0?void 0:_state$settings3$conf.isFetching)||false;};/**
* Creates a selector that retrieves the enabled fulfillment paths from the merchant settings.
* @returns {Function}
*/export function makeGetEnabledFulfillmentMethods(){var getMerchantSettings=makeGetMerchantSettings();return createSelector(getMerchantSettings,function(settings){if(!Array.isArray(settings.enabledFulfillmentMethods)){return null;}return settings.enabledFulfillmentMethods;});}/**
* Creates a selector that counts the enabled fulfillment paths from the merchant settings.
* @returns {Function}
*/export function makeGetEnabledFulfillmentMethodsCount(){var getEnabledFulfillmentMethods=makeGetEnabledFulfillmentMethods();return createSelector(getEnabledFulfillmentMethods,function(methods){if(methods===null){return 0;}return methods.length;});}/**
* Creates a selector that retrieves the enabled fulfillment paths.
* @returns {Function}
*/export function makeGetFulfillmentPaths(){var getMerchantSettings=makeGetMerchantSettings();return createSelector(getMerchantSettings,function(settings){if(!settings||Object.keys(settings).length===0){return[];}var _settings$enabledFulf=settings.enabledFulfillmentMethodSelectionForEngage,enabledFulfillmentMethodSelectionForEngage=_settings$enabledFulf===void 0?[]:_settings$enabledFulf;return enabledFulfillmentMethodSelectionForEngage;});}/**
* Creates a selector that retrieves the default unit system
* @returns {Function}
*/export var makeGetDefaultUnitSystem=function makeGetDefaultUnitSystem(){var getMerchantSettings=makeGetMerchantSettings();return createSelector(getMerchantSettings,function(settings){if(!settings||Object.keys(settings).length===0){return null;}return settings.defaultUnitSystem||null;});};/**
* @returns {Function}
*/export var makeUseLocationFulfillmentMethods=function makeUseLocationFulfillmentMethods(){return createSelector(function(){return true;});};