fix: Improve filter component error handling (#8832)
This commit is contained in:
@@ -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];
|
||||
}
|
||||
|
||||
|
||||
@@ -56,6 +56,10 @@ export const handleOperatorChange = ({
|
||||
return condition;
|
||||
};
|
||||
|
||||
export const isEmptyInput = (value: unknown): boolean => {
|
||||
return value === '' || value === '=';
|
||||
};
|
||||
|
||||
export const resolveCondition = ({
|
||||
condition,
|
||||
options,
|
||||
|
||||
Reference in New Issue
Block a user