Charles Bochet
2025-09-12 20:24:14 +02:00
committed by GitHub
parent 1f333503eb
commit 894e599173
4 changed files with 115 additions and 14 deletions
@@ -0,0 +1,43 @@
import { isActiveFieldMetadataItem } from '@/object-metadata/utils/isActiveFieldMetadataItem';
describe('isActiveFieldMetadataItem', () => {
it('should return false for inactive fields', () => {
const res = isActiveFieldMetadataItem({
fieldMetadata: { isActive: false, isSystem: false, name: 'fieldName' },
objectNameSingular: 'objectNameSingular',
});
expect(res).toBe(false);
});
it('should return true for active fields', () => {
const res = isActiveFieldMetadataItem({
fieldMetadata: { isActive: true, isSystem: false, name: 'fieldName' },
objectNameSingular: 'objectNameSingular',
});
expect(res).toBe(true);
});
it('should return false for system fields', () => {
const res = isActiveFieldMetadataItem({
fieldMetadata: { isActive: true, isSystem: true, name: 'fieldName' },
objectNameSingular: 'objectNameSingular',
});
expect(res).toBe(false);
});
it('should return true for note targets', () => {
const res = isActiveFieldMetadataItem({
fieldMetadata: { isActive: true, isSystem: false, name: 'noteTargets' },
objectNameSingular: 'note',
});
expect(res).toBe(true);
});
it('should return true for task targets', () => {
const res = isActiveFieldMetadataItem({
fieldMetadata: { isActive: true, isSystem: false, name: 'taskTargets' },
objectNameSingular: 'task',
});
expect(res).toBe(true);
});
});
@@ -0,0 +1,31 @@
import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular';
import { type FieldMetadataItem } from '../types/FieldMetadataItem';
type IsFieldMetadataAvailableForViewFieldArgs = {
objectNameSingular: string;
fieldMetadata: Pick<FieldMetadataItem, 'name' | 'isSystem' | 'isActive'>;
};
export const isActiveFieldMetadataItem = ({
objectNameSingular,
fieldMetadata,
}: IsFieldMetadataAvailableForViewFieldArgs) => {
if (fieldMetadata.isActive === false) {
return false;
}
if (
(objectNameSingular === CoreObjectNameSingular.Note &&
fieldMetadata.name === 'noteTargets') ||
(objectNameSingular === CoreObjectNameSingular.Task &&
fieldMetadata.name === 'taskTargets')
) {
return true;
}
if (fieldMetadata.isSystem === true) {
return false;
}
return true;
};