Remove filter definition (#10227)
This PR removes completely filter definition usage and states, everything is now derived from fieldMetadataItem.
This commit is contained in:
@ -1,69 +1,8 @@
|
||||
import { RecordFilterDefinition } from '@/object-record/record-filter/types/RecordFilterDefinition';
|
||||
import {
|
||||
FieldMetadataType,
|
||||
RelationDefinitionType,
|
||||
} from '~/generated-metadata/graphql';
|
||||
import { FieldMetadataType } from '~/generated-metadata/graphql';
|
||||
|
||||
import { FilterableFieldType } from '@/object-record/record-filter/types/FilterableFieldType';
|
||||
import { ObjectMetadataItem } from '../types/ObjectMetadataItem';
|
||||
|
||||
export const formatFieldMetadataItemsAsFilterDefinitions = ({
|
||||
fields,
|
||||
isJsonFilterEnabled,
|
||||
}: {
|
||||
fields: Array<ObjectMetadataItem['fields'][0]>;
|
||||
isJsonFilterEnabled: boolean;
|
||||
}): RecordFilterDefinition[] => {
|
||||
return fields.reduce((acc, field) => {
|
||||
if (
|
||||
field.type === FieldMetadataType.RELATION &&
|
||||
field.relationDefinition?.direction !==
|
||||
RelationDefinitionType.MANY_TO_ONE &&
|
||||
field.relationDefinition?.direction !== RelationDefinitionType.ONE_TO_ONE
|
||||
) {
|
||||
return acc;
|
||||
}
|
||||
|
||||
if (
|
||||
![
|
||||
FieldMetadataType.BOOLEAN,
|
||||
FieldMetadataType.DATE_TIME,
|
||||
FieldMetadataType.DATE,
|
||||
FieldMetadataType.TEXT,
|
||||
FieldMetadataType.EMAILS,
|
||||
FieldMetadataType.NUMBER,
|
||||
FieldMetadataType.LINKS,
|
||||
FieldMetadataType.FULL_NAME,
|
||||
FieldMetadataType.ADDRESS,
|
||||
FieldMetadataType.RELATION,
|
||||
FieldMetadataType.SELECT,
|
||||
FieldMetadataType.MULTI_SELECT,
|
||||
FieldMetadataType.CURRENCY,
|
||||
FieldMetadataType.RATING,
|
||||
FieldMetadataType.ACTOR,
|
||||
FieldMetadataType.PHONES,
|
||||
FieldMetadataType.ARRAY,
|
||||
...(isJsonFilterEnabled ? [FieldMetadataType.RAW_JSON] : []),
|
||||
].includes(field.type)
|
||||
) {
|
||||
return acc;
|
||||
}
|
||||
|
||||
return [...acc, formatFieldMetadataItemAsFilterDefinition({ field })];
|
||||
}, [] as RecordFilterDefinition[]);
|
||||
};
|
||||
|
||||
export const formatFieldMetadataItemAsFilterDefinition = ({
|
||||
field,
|
||||
}: {
|
||||
field: ObjectMetadataItem['fields'][0];
|
||||
}): RecordFilterDefinition => ({
|
||||
fieldMetadataId: field.id,
|
||||
label: field.label,
|
||||
iconName: field.icon ?? 'Icon123',
|
||||
type: getFilterTypeFromFieldType(field.type),
|
||||
});
|
||||
|
||||
export const getRelationObjectMetadataNameSingular = ({
|
||||
field,
|
||||
}: {
|
||||
|
||||
Reference in New Issue
Block a user