@shopgate/pwa-common
Version:
Common library for the Shopgate Connect PWA.
21 lines • 1.64 kB
JavaScript
import{createSelector}from'reselect';/**
* Selects the menu state from the store.
* @param {Object} state The global state.
* @return {Object}
*/export var getMenuState=function getMenuState(state){return state.menu;};/**
* @param {Object} state The global state.
* @return {Object|null}
*/export var getMenus=createSelector(getMenuState,function(menuState){if(!menuState||!menuState.menusById){return null;}return menuState.menusById;});var defaultValue=[];/**
* Selects a menu by id.
* @param {Object} state The global state.
* @param {Object} props The menu props.
* @return {Array}
*/export var getMenuById=createSelector(getMenus,function(state,_ref){var id=_ref.id;return id;},function(menus,id){if(!menus||!menus[id]||!menus[id].entries){return defaultValue;}return menus[id].entries;});/**
* Creates a selector that retrieves a list of entries for a specified menu id.
* @param {string} menuId The menu id.
* @returns {Function}
*/export var makeGetMenu=function makeGetMenu(menuId){return createSelector(getMenus,function(menus){var _menus$menuId;return(menus===null||menus===void 0?void 0:(_menus$menuId=menus[menuId])===null||_menus$menuId===void 0?void 0:_menus$menuId.entries)||null;});};/**
* Creates a selector that determines if a menu is fetching.
* @param {string} menuId The menu id.
* @returns {Function}
*/export var makeGetIsFetchingMenu=function makeGetIsFetchingMenu(menuId){return createSelector(getMenus,function(menus){var _menus$menuId2;return(menus===null||menus===void 0?void 0:(_menus$menuId2=menus[menuId])===null||_menus$menuId2===void 0?void 0:_menus$menuId2.isFetching)||false;});};