feat: expand relation record cards on click in Record Show page (#4570)
Closes #3126
This commit is contained in:
@ -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;
|
||||
};
|
||||
@ -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;
|
||||
Reference in New Issue
Block a user