1+ import applyFilters from './applyFilters' ;
2+
13export default ( entityData = [ ] ) => (
24 _ ,
35 { sortField, sortOrder = 'asc' , page, perPage = 25 , filter = { } }
@@ -16,56 +18,8 @@ export default (entityData = []) => (
1618 return 0 ;
1719 } ) ;
1820 }
19- if ( filter . ids ) {
20- items = items . filter ( d => filter . ids . includes ( d . id . toString ( ) ) ) ;
21- } else {
22- Object . keys ( filter ) . filter ( key => key !== 'q' ) . forEach ( key => {
23- if ( key . indexOf ( '_lte' ) !== - 1 ) {
24- // less than or equal
25- const realKey = key . replace ( / ( _ l t e ) $ / , '' ) ;
26- items = items . filter ( d => d [ realKey ] <= filter [ key ] ) ;
27- return ;
28- }
29- if ( key . indexOf ( '_gte' ) !== - 1 ) {
30- // less than or equal
31- const realKey = key . replace ( / ( _ g t e ) $ / , '' ) ;
32- items = items . filter ( d => d [ realKey ] >= filter [ key ] ) ;
33- return ;
34- }
35- if ( key . indexOf ( '_lt' ) !== - 1 ) {
36- // less than or equal
37- const realKey = key . replace ( / ( _ l t ) $ / , '' ) ;
38- items = items . filter ( d => d [ realKey ] < filter [ key ] ) ;
39- return ;
40- }
41- if ( key . indexOf ( '_gt' ) !== - 1 ) {
42- // less than or equal
43- const realKey = key . replace ( / ( _ g t ) $ / , '' ) ;
44- items = items . filter ( d => d [ realKey ] > filter [ key ] ) ;
45- return ;
46- }
47-
48- items = items . filter (
49- d =>
50- filter [ key ] instanceof Date
51- ? + d [ key ] == + filter [ key ]
52- : d [ key ] == filter [ key ]
53- ) ;
54- } ) ;
5521
56- if ( filter . q ) {
57- items = items . filter ( d =>
58- Object . keys ( d ) . some (
59- key =>
60- d [ key ] &&
61- d [ key ]
62- . toString ( )
63- . toLowerCase ( )
64- . includes ( filter . q . toLowerCase ( ) )
65- )
66- ) ;
67- }
68- }
22+ items = applyFilters ( items , filter ) ;
6923
7024 if ( page !== undefined && perPage ) {
7125 items = items . slice ( page * perPage , page * perPage + perPage ) ;
0 commit comments