fix: hide disabled fields in Show Page (#3062)

Fixes #2904
This commit is contained in:
Thaïs
2023-12-19 18:45:37 +01:00
committed by GitHub
parent 58f781b0a8
commit c09b98cdc9
3 changed files with 13 additions and 27 deletions

View File

@ -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 (
<FieldContext.Provider

View File

@ -1,25 +0,0 @@
import { FieldMetadataItem } from '@/object-metadata/types/FieldMetadataItem';
import { parseFieldRelationType } from '@/object-metadata/utils/parseFieldRelationType';
export const filterAvailableFieldMetadataItem = (
fieldMetadataItem: FieldMetadataItem,
): boolean => {
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;
};

View File

@ -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;