Add basic UUID support to filters (#12676)

- Only operands IS
- Do not set filter when no valid uuids or variables
- Allow ID field to be filterable despite being system



https://github.com/user-attachments/assets/e1c67103-728f-4798-91c6-4aea162f8698

---------

Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com>
This commit is contained in:
Thomas Trompette
2025-06-17 14:58:50 +02:00
committed by GitHub
parent 01a69f6288
commit fb9d5066dc
9 changed files with 59 additions and 2 deletions

View File

@ -51,6 +51,8 @@ export const getFilterTypeFromFieldType = (
return 'BOOLEAN';
case FieldMetadataType.TS_VECTOR:
return 'TS_VECTOR';
case FieldMetadataType.UUID:
return 'UUID';
default:
return 'TEXT';
}

View File

@ -9,6 +9,7 @@ export const getFilterFilterableFieldMetadataItems = ({
return (field: FieldMetadataItem) => {
const isSystemField = field.isSystem;
const isFieldActive = field.isActive;
const isIdField = field.name === 'id';
const isRelationFieldHandled = !(
field.type === FieldMetadataType.RELATION &&
@ -33,11 +34,12 @@ export const getFilterFilterableFieldMetadataItems = ({
FieldMetadataType.ACTOR,
FieldMetadataType.PHONES,
FieldMetadataType.ARRAY,
FieldMetadataType.UUID,
...(isJsonFilterEnabled ? [FieldMetadataType.RAW_JSON] : []),
].includes(field.type);
const isFieldFilterable =
!isSystemField &&
(!isSystemField || isIdField) &&
isFieldActive &&
isRelationFieldHandled &&
isFieldTypeFilterable;