You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.1 KiB
44 lines
1.1 KiB
import moment from 'moment';
|
|
import * as filterTypes from 'Helpers/Props/filterTypes';
|
|
import isAfter from 'Utilities/Date/isAfter';
|
|
import isBefore from 'Utilities/Date/isBefore';
|
|
|
|
export default function(itemValue, filterValue, type) {
|
|
if (!itemValue) {
|
|
return false;
|
|
}
|
|
|
|
switch (type) {
|
|
case filterTypes.LESS_THAN:
|
|
return moment(itemValue).isBefore(filterValue);
|
|
|
|
case filterTypes.GREATER_THAN:
|
|
return moment(itemValue).isAfter(filterValue);
|
|
|
|
case filterTypes.IN_LAST:
|
|
return (
|
|
isAfter(itemValue, { [filterValue.time]: filterValue.value * -1 }) &&
|
|
isBefore(itemValue)
|
|
);
|
|
|
|
case filterTypes.NOT_IN_LAST:
|
|
return (
|
|
isBefore(itemValue, { [filterValue.time]: filterValue.value * -1 })
|
|
);
|
|
|
|
case filterTypes.IN_NEXT:
|
|
return (
|
|
isAfter(itemValue) &&
|
|
isBefore(itemValue, { [filterValue.time]: filterValue.value })
|
|
);
|
|
|
|
case filterTypes.NOT_IN_NEXT:
|
|
return (
|
|
isAfter(itemValue, { [filterValue.time]: filterValue.value })
|
|
);
|
|
|
|
default:
|
|
return false;
|
|
}
|
|
}
|