UNPKG

@woocommerce/data

Version:
41 lines (40 loc) 1.36 kB
/** * External dependencies */ import createSelector from 'rememo'; /** * Internal dependencies */ import { getResourceName } from '../utils'; import { getTotalCountResourceName } from './utils'; export const getItems = createSelector((state, itemType, query, defaultValue = new Map()) => { const resourceName = getResourceName(itemType, query); let ids; if (state.items[resourceName] && typeof state.items[resourceName] === 'object') { ids = state.items[resourceName] .data; } if (!ids) { return defaultValue; } return ids.reduce((map, id) => { var _a; map.set(id, (_a = state.data[itemType]) === null || _a === void 0 ? void 0 : _a[id]); return map; }, new Map()); }, (state, itemType, query) => { const resourceName = getResourceName(itemType, query); return [state.items[resourceName]]; }); export const getItemsTotalCount = (state, itemType, query, defaultValue = 0) => { const resourceName = getTotalCountResourceName(itemType, query); const totalCount = state.items.hasOwnProperty(resourceName) ? state.items[resourceName] : defaultValue; return totalCount; }; export const getItemsError = (state, itemType, query) => { const resourceName = getResourceName(itemType, query); return state.errors[resourceName]; };