fix: handle operator case change in api and ui (#5835)

This commit is contained in:
Vikrant Gupta 2024-09-03 00:24:06 +05:30 committed by GitHub
parent e4753e6b44
commit 709c286086
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -58,6 +58,8 @@ import { PLACEHOLDER } from '../QueryBuilderSearch/constant';
import { TypographyText } from '../QueryBuilderSearch/style'; import { TypographyText } from '../QueryBuilderSearch/style';
import { import {
checkCommaInValue, checkCommaInValue,
getOperatorFromValue,
getOperatorValue,
getTagToken, getTagToken,
isInNInOperator, isInNInOperator,
} from '../QueryBuilderSearch/utils'; } from '../QueryBuilderSearch/utils';
@ -103,8 +105,8 @@ function getInitTags(query: IBuilderQuery): ITag[] {
return query.filters.items.map((item) => ({ return query.filters.items.map((item) => ({
id: item.id, id: item.id,
key: item.key as BaseAutocompleteData, key: item.key as BaseAutocompleteData,
op: item.op, op: getOperatorFromValue(item.op),
value: `${item.value}`, value: item.value,
})); }));
} }
@ -332,7 +334,7 @@ function QueryBuilderSearchV2(
{ {
key: currentFilterItem?.key, key: currentFilterItem?.key,
op: currentFilterItem?.op, op: currentFilterItem?.op,
value: tagValue.join(','), value: tagValue,
} as ITag, } as ITag,
]); ]);
return; return;
@ -700,17 +702,28 @@ function QueryBuilderSearchV2(
items: [], items: [],
}; };
tags.forEach((tag) => { tags.forEach((tag) => {
const computedTagValue =
tag.value &&
Array.isArray(tag.value) &&
tag.value[tag.value.length - 1] === ''
? tag.value?.slice(0, -1)
: tag.value ?? '';
filterTags.items.push({ filterTags.items.push({
id: tag.id || uuid().slice(0, 8), id: tag.id || uuid().slice(0, 8),
key: tag.key, key: tag.key,
op: tag.op, op: getOperatorValue(tag.op),
value: tag.value, value: computedTagValue,
}); });
}); });
if (!isEqual(query.filters, filterTags)) { if (!isEqual(query.filters, filterTags)) {
onChange(filterTags); onChange(filterTags);
setTags(filterTags.items as ITag[]); setTags(
filterTags.items.map((tag) => ({
...tag,
op: getOperatorFromValue(tag.op),
})) as ITag[],
);
} }
// eslint-disable-next-line react-hooks/exhaustive-deps // eslint-disable-next-line react-hooks/exhaustive-deps
}, [tags]); }, [tags]);