Files
Eventment/app/selectors/items.js

43 lines
1.1 KiB
JavaScript

import { createSelector } from 'reselect';
//import { getItemsIdsWithNoBids, getMyBidItemIds, getMyWinningItemIds } from './auctions.js';
const getState = (state) => state;
export const getItem = (state, itemId) => state.getIn(['items', itemId], false);
export const getItems = createSelector(
[getState],
(state) => state.get('items') || new Map(),
);
export const getItemsAsList = createSelector(
[getItems],
(itemsAsMap) => itemsAsMap.toList(),
);
export const getAuctionItems = createSelector(
[getState],
(state) => state.get('items').filter(i => i.type === 'auction') || new Map(),
);
export const getAuctionItemsAsList = createSelector(
[getAuctionItems],
(auctionItemsAsMap) => auctionItemsAsMap.toList(),
);
export const getTicketItems = createSelector(
[getState],
(state) => state.get('items').filter(i => i.type === 'ticket') || new Map(),
);
export const getTicketItemsAsList = createSelector(
[getTicketItems],
(ticketItemsAsMap) => ticketItemsAsMap.toList(),
);
export const getAuctionItemsWithNoBids = createSelector(
[getAuctionItems],
(auctionItemsAsMap) => auctionItemsAsMap.filter(i => i.bidCount),
);