UNPKG

@shopgate/pwa-common

Version:

Common library for the Shopgate Connect PWA.

21 lines 1.64 kB
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;});};