From c09b98cdc9681808a54e44da7fc98f4534b9d1ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tha=C3=AFs?= Date: Tue, 19 Dec 2023 18:45:37 +0100 Subject: [PATCH] fix: hide disabled fields in Show Page (#3062) Fixes #2904 --- .../components/RecordShowPage.tsx | 4 +-- .../utils/filterAvailableFieldMetadataItem.ts | 25 ------------------- .../utils/isFieldMetadataItemAvailable.ts | 11 ++++++++ 3 files changed, 13 insertions(+), 27 deletions(-) delete mode 100644 packages/twenty-front/src/modules/object-record/utils/filterAvailableFieldMetadataItem.ts create mode 100644 packages/twenty-front/src/modules/object-record/utils/isFieldMetadataItemAvailable.ts diff --git a/packages/twenty-front/src/modules/object-record/components/RecordShowPage.tsx b/packages/twenty-front/src/modules/object-record/components/RecordShowPage.tsx index 1fdb8c2e0..b04e78cbb 100644 --- a/packages/twenty-front/src/modules/object-record/components/RecordShowPage.tsx +++ b/packages/twenty-front/src/modules/object-record/components/RecordShowPage.tsx @@ -11,7 +11,7 @@ import { RecordInlineCell } from '@/object-record/record-inline-cell/components/ import { PropertyBox } from '@/object-record/record-inline-cell/property-box/components/PropertyBox'; import { InlineCellHotkeyScope } from '@/object-record/record-inline-cell/types/InlineCellHotkeyScope'; import { useRelationPicker } from '@/object-record/relation-picker/hooks/useRelationPicker'; -import { filterAvailableFieldMetadataItem } from '@/object-record/utils/filterAvailableFieldMetadataItem'; +import { isFieldMetadataItemAvailable } from '@/object-record/utils/isFieldMetadataItemAvailable'; import { IconBuildingSkyscraper } from '@/ui/display/icon'; import { PageBody } from '@/ui/layout/page/PageBody'; import { PageContainer } from '@/ui/layout/page/PageContainer'; @@ -215,7 +215,7 @@ export const RecordShowPage = () => { .sort((a, b) => a.name === 'name' ? -1 : a.name.localeCompare(b.name), ) - .filter(filterAvailableFieldMetadataItem) + .filter(isFieldMetadataItemAvailable) .map((metadataField, index) => { return ( { - if (fieldMetadataItem.type === 'RELATION') { - const fieldMetadataItemRelationType = - parseFieldRelationType(fieldMetadataItem); - - if (fieldMetadataItemRelationType !== 'TO_ONE_OBJECT') { - return false; - } - } - - if (fieldMetadataItem.type === 'UUID') { - return false; - } - - if (fieldMetadataItem.isSystem) { - return false; - } - - return true; -}; diff --git a/packages/twenty-front/src/modules/object-record/utils/isFieldMetadataItemAvailable.ts b/packages/twenty-front/src/modules/object-record/utils/isFieldMetadataItemAvailable.ts new file mode 100644 index 000000000..e3db7bf12 --- /dev/null +++ b/packages/twenty-front/src/modules/object-record/utils/isFieldMetadataItemAvailable.ts @@ -0,0 +1,11 @@ +import { FieldMetadataItem } from '@/object-metadata/types/FieldMetadataItem'; +import { parseFieldRelationType } from '@/object-metadata/utils/parseFieldRelationType'; + +export const isFieldMetadataItemAvailable = ( + fieldMetadataItem: FieldMetadataItem, +) => + fieldMetadataItem.type !== 'UUID' && + (fieldMetadataItem.type !== 'RELATION' || + parseFieldRelationType(fieldMetadataItem) === 'TO_ONE_OBJECT') && + !fieldMetadataItem.isSystem && + !!fieldMetadataItem.isActive;