fix: Improve filter component error handling (#8832)

This commit is contained in:
Elias Meire
2024-03-08 10:10:32 +01:00
committed by GitHub
parent 5d52bda865
commit 76fe960a76
7 changed files with 46 additions and 49 deletions

View File

@@ -16,6 +16,7 @@ import { type FilterOperatorId } from './constants';
import {
getFilterOperator,
handleOperatorChange,
isEmptyInput,
operatorTypeToNodeProperty,
resolveCondition,
} from './utils';
@@ -54,12 +55,20 @@ const operatorId = computed<FilterOperatorId>(() => {
});
const operator = computed(() => getFilterOperator(operatorId.value));
const isEmpty = computed(() => {
if (operator.value.singleValue) {
return isEmptyInput(condition.value.leftValue);
}
return isEmptyInput(condition.value.leftValue) && isEmptyInput(condition.value.rightValue);
});
const conditionResult = computed(() =>
resolveCondition({ condition: condition.value, options: props.options }),
);
const allIssues = computed(() => {
if (conditionResult.value.status === 'validation_error') {
if (conditionResult.value.status === 'validation_error' && !isEmpty.value) {
return [conditionResult.value.error];
}

View File

@@ -56,6 +56,10 @@ export const handleOperatorChange = ({
return condition;
};
export const isEmptyInput = (value: unknown): boolean => {
return value === '' || value === '=';
};
export const resolveCondition = ({
condition,
options,