Fix is empty and non empty filter for numbers (#16424)

isNonEmptyString does not work for a number. We need to properly handle
null and undefined
This commit is contained in:
Thomas Trompette
2025-12-09 14:55:14 +01:00
committed by GitHub
parent e8d4f11d8e
commit 3ba7a070d9
@@ -241,18 +241,10 @@ function evaluateDateFilter(filter: ResolvedFilter): boolean {
);
case ViewFilterOperand.IS_EMPTY:
return (
filter.leftOperand === null ||
filter.leftOperand === undefined ||
filter.leftOperand === ''
);
return !isDefined(filter.leftOperand) || filter.leftOperand === '';
case ViewFilterOperand.IS_NOT_EMPTY:
return (
filter.leftOperand !== null &&
filter.leftOperand !== undefined &&
filter.leftOperand !== ''
);
return isDefined(filter.leftOperand) && filter.leftOperand !== '';
case ViewFilterOperand.IS_RELATIVE:
return parseAndEvaluateRelativeDateFilter({
@@ -341,10 +333,10 @@ function evaluateNumberFilter(filter: ResolvedFilter): boolean {
return Number(leftValue) <= Number(rightValue);
case ViewFilterOperand.IS_EMPTY:
return !isNonEmptyString(leftValue);
return !isDefined(filter.leftOperand) || filter.leftOperand === '';
case ViewFilterOperand.IS_NOT_EMPTY:
return isNonEmptyString(leftValue);
return isDefined(filter.leftOperand) && filter.leftOperand !== '';
case ViewFilterOperand.IS:
return Number(leftValue) === Number(rightValue);