11export default entityData => (
22 _ ,
3- { sortField, sortOrder = 'asc' , page, perPage = 25 , filter = '{}' } ,
3+ { sortField, sortOrder = 'asc' , page, perPage = 25 , filter = { } } ,
44) => {
5- const filters = JSON . parse ( filter ) ;
65 let items = [ ...entityData ] ;
76
87 if ( sortField ) {
@@ -17,42 +16,42 @@ export default entityData => (
1716 return 0 ;
1817 } ) ;
1918 }
20- if ( filters . ids ) {
21- items = items . filter ( d => filters . ids . includes ( d . id . toString ( ) ) ) ;
19+ if ( filter . ids ) {
20+ items = items . filter ( d => filter . ids . includes ( d . id . toString ( ) ) ) ;
2221 } else {
23- Object . keys ( filters ) . filter ( key => key !== 'q' ) . forEach ( key => {
22+ Object . keys ( filter ) . filter ( key => key !== 'q' ) . forEach ( key => {
2423 if ( key . indexOf ( '_lte' ) !== - 1 ) {
2524 // less than or equal
2625 const realKey = key . replace ( / ( _ l t e ) $ / , '' ) ;
27- items = items . filter ( d => d [ realKey ] <= filters [ key ] ) ;
26+ items = items . filter ( d => d [ realKey ] <= filter [ key ] ) ;
2827 return ;
2928 }
3029 if ( key . indexOf ( '_gte' ) !== - 1 ) {
3130 // less than or equal
3231 const realKey = key . replace ( / ( _ g t e ) $ / , '' ) ;
33- items = items . filter ( d => d [ realKey ] >= filters [ key ] ) ;
32+ items = items . filter ( d => d [ realKey ] >= filter [ key ] ) ;
3433 return ;
3534 }
3635 if ( key . indexOf ( '_lt' ) !== - 1 ) {
3736 // less than or equal
3837 const realKey = key . replace ( / ( _ l t ) $ / , '' ) ;
39- items = items . filter ( d => d [ realKey ] < filters [ key ] ) ;
38+ items = items . filter ( d => d [ realKey ] < filter [ key ] ) ;
4039 return ;
4140 }
4241 if ( key . indexOf ( '_gt' ) !== - 1 ) {
4342 // less than or equal
4443 const realKey = key . replace ( / ( _ g t ) $ / , '' ) ;
45- items = items . filter ( d => d [ realKey ] > filters [ key ] ) ;
44+ items = items . filter ( d => d [ realKey ] > filter [ key ] ) ;
4645 return ;
4746 }
4847
49- items = items . filter ( d => d [ key ] == filters [ key ] ) ;
48+ items = items . filter ( d => d [ key ] == filter [ key ] ) ;
5049 } ) ;
5150
52- if ( filters . q ) {
51+ if ( filter . q ) {
5352 items = items . filter ( d =>
54- Object . keys ( d ) . some ( key =>
55- d [ key ] . toString ( ) . includes ( filters . q ) ,
53+ Object . keys ( d ) . some (
54+ key => d [ key ] && d [ key ] . toString ( ) . includes ( filter . q ) ,
5655 ) ,
5756 ) ;
5857 }
0 commit comments