feat: expand relation record cards on click in Record Show page (#4570)

Closes #3126
This commit is contained in:
Thaïs
2024-04-02 09:42:57 +02:00
committed by GitHub
parent 746747ba2b
commit dc8ab5d95a
8 changed files with 271 additions and 101 deletions

View File

@ -0,0 +1,37 @@
import { FieldMetadataItem } from '@/object-metadata/types/FieldMetadataItem';
import { isObjectMetadataAvailableForRelation } from '@/object-metadata/utils/isObjectMetadataAvailableForRelation';
import {
FieldMetadataType,
RelationMetadataType,
} from '~/generated-metadata/graphql';
export const isFieldCellSupported = (fieldMetadataItem: FieldMetadataItem) => {
if (
[FieldMetadataType.Uuid, FieldMetadataType.Position].includes(
fieldMetadataItem.type,
)
) {
return false;
}
if (fieldMetadataItem.type === FieldMetadataType.Relation) {
const relationMetadata =
fieldMetadataItem.fromRelationMetadata ??
fieldMetadataItem.toRelationMetadata;
const relationObjectMetadataItem =
fieldMetadataItem.fromRelationMetadata?.toObjectMetadata ??
fieldMetadataItem.toRelationMetadata?.fromObjectMetadata;
if (
!relationMetadata ||
// TODO: Many to many relations are not supported yet.
relationMetadata.relationType === RelationMetadataType.ManyToMany ||
!relationObjectMetadataItem ||
!isObjectMetadataAvailableForRelation(relationObjectMetadataItem)
) {
return false;
}
}
return !fieldMetadataItem.isSystem && !!fieldMetadataItem.isActive;
};

View File

@ -1,17 +0,0 @@
import { FieldMetadataItem } from '@/object-metadata/types/FieldMetadataItem';
import { RelationMetadataType } from '~/generated-metadata/graphql';
export const isFieldMetadataItemAvailable = (
fieldMetadataItem: FieldMetadataItem,
) =>
fieldMetadataItem.type !== 'UUID' &&
// TODO: Many to many relations are not supported yet.
!(
fieldMetadataItem.type === 'RELATION' &&
(
fieldMetadataItem.fromRelationMetadata ??
fieldMetadataItem.toRelationMetadata
)?.relationType === RelationMetadataType.ManyToMany
) &&
!fieldMetadataItem.isSystem &&
!!fieldMetadataItem.isActive;