UNPKG

@woocommerce/data

Version:
54 lines (53 loc) 1.66 kB
/** * External dependencies */ import createSelector from 'rememo'; /** * Internal dependencies */ import { getOrderResourceName, getTotalOrderCountResourceName } from './utils'; export const getOrders = createSelector((state, query, defaultValue = undefined) => { const resourceName = getOrderResourceName(query); const ids = state.orders[resourceName] ? state.orders[resourceName].data : undefined; if (!ids) { return defaultValue; } if (query && typeof query._fields !== 'undefined') { const fields = query._fields; return ids.map((id) => { return fields.reduce((product, field) => { return { ...product, [field]: state.data[id][field], }; }, {}); }); } return ids.map((id) => { return state.data[id]; }); }, (state, query) => { const resourceName = getOrderResourceName(query); const ids = state.orders[resourceName] ? state.orders[resourceName].data : []; return [ state.orders[resourceName], ...ids.map((id) => { return state.data[id]; }), ]; }); export const getOrdersTotalCount = (state, query, defaultValue = undefined) => { const resourceName = getTotalOrderCountResourceName(query); const totalCount = state.ordersCount.hasOwnProperty(resourceName) ? state.ordersCount[resourceName] : defaultValue; return totalCount; }; export const getOrdersError = (state, query) => { const resourceName = getOrderResourceName(query); return state.errors[resourceName]; };