1 |
|
2 |
|
3 | import type { PaginatorSettings } from "./types";
|
4 |
|
5 | import { createSelector } from "reselect";
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 | const createReducer = ({ key } : PaginatorSettings) => {
|
13 | const
|
14 | getItems = (state : any) => state.getIn([
|
15 | "entities",
|
16 | key,
|
17 | ]),
|
18 | getItem = createSelector(
|
19 | getItems,
|
20 | (state, id) => id,
|
21 | (data, id) => data.get(id)
|
22 | ),
|
23 | getItemsList = createSelector(
|
24 | getItems,
|
25 | (data) => data.toList()
|
26 | );
|
27 |
|
28 | return {
|
29 | getItems,
|
30 | getItem,
|
31 | getItemsList,
|
32 | };
|
33 | };
|
34 |
|
35 | export default createReducer;
|