- implementing immutable.js
This commit is contained in:
13
app/selectors/auctions.js
Normal file
13
app/selectors/auctions.js
Normal file
@@ -0,0 +1,13 @@
|
||||
import { createSelector } from 'reselect';
|
||||
|
||||
//import { getItemsIdsWithNoBids, getMyBidItemIds, getMyWinningItemIds } from './auctions.js';
|
||||
|
||||
const getState = (state) => state;
|
||||
|
||||
export const getItemBidCount = (state, itemId) => state.getIn(['auctions', itemId, 'bidCount'], 0);
|
||||
|
||||
export const getItemPrice = (state, itemId) => state.getIn(['auctions', itemId, 'currentPrice'], 0);
|
||||
|
||||
export const isBiddingItem = (state, itemId) => state.getIn(['auctions', itemId, 'isBidding'], false);
|
||||
|
||||
export const isWinningItem = (state, itemId) => state.getIn(['auctions', itemId, 'isWinning'], false);
|
||||
42
app/selectors/items.js
Normal file
42
app/selectors/items.js
Normal file
@@ -0,0 +1,42 @@
|
||||
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),
|
||||
);
|
||||
Reference in New Issue
Block a user