diff --git a/packages/twenty-front/codegen.cjs b/packages/twenty-front/codegen.cjs
index 73cf1346d..f318d5de0 100644
--- a/packages/twenty-front/codegen.cjs
+++ b/packages/twenty-front/codegen.cjs
@@ -1,6 +1,12 @@
module.exports = {
- schema: process.env.REACT_APP_SERVER_BASE_URL + "/graphql",
- documents: ['!./src/modules/object-metadata/**', '!./src/modules/object-record/**', './src/modules/**/*.tsx', './src/modules/**/*.ts'],
+ schema: process.env.REACT_APP_SERVER_BASE_URL + '/graphql',
+ documents: [
+ '!./src/modules/object-metadata/**',
+ '!./src/modules/object-record/**',
+ './src/modules/**/*.tsx',
+ './src/modules/**/*.ts',
+ '!./src/**/*.test.tsx',
+ ],
overwrite: true,
generates: {
'./src/generated/graphql.tsx': {
@@ -16,7 +22,7 @@ module.exports = {
withComponent: false,
scalars: {
DateTime: 'string',
- }
+ },
},
},
},
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 4d7adf44e..269d32339 100644
--- a/packages/twenty-front/src/modules/object-record/components/RecordShowPage.tsx
+++ b/packages/twenty-front/src/modules/object-record/components/RecordShowPage.tsx
@@ -4,6 +4,7 @@ import { useRecoilState } from 'recoil';
import { useFavorites } from '@/favorites/hooks/useFavorites';
import { useObjectMetadataItem } from '@/object-metadata/hooks/useObjectMetadataItem';
import { formatFieldMetadataItemAsColumnDefinition } from '@/object-metadata/utils/formatFieldMetadataItemAsColumnDefinition';
+import { parseFieldRelationType } from '@/object-metadata/utils/parseFieldRelationType';
import { parseFieldType } from '@/object-metadata/utils/parseFieldType';
import {
FieldContext,
@@ -30,6 +31,7 @@ import { ShowPageSummaryCard } from '@/ui/layout/show-page/components/ShowPageSu
import { ShowPageRecoilScopeContext } from '@/ui/layout/states/ShowPageRecoilScopeContext';
import { PageTitle } from '@/ui/utilities/page-title/PageTitle';
import { RecoilScope } from '@/ui/utilities/recoil-scope/components/RecoilScope';
+import { useIsFeatureEnabled } from '@/workspace/hooks/useIsFeatureEnabled';
import {
FieldMetadataType,
FileFolder,
@@ -139,6 +141,10 @@ export const RecordShowPage = () => {
});
};
+ const isRelationFieldCardEnabled = useIsFeatureEnabled(
+ 'IS_RELATION_FIELD_CARD_ENABLED',
+ );
+
const availableFieldMetadataItems = objectMetadataItem.fields
.filter(
(fieldMetadataItem) =>
@@ -151,7 +157,9 @@ export const RecordShowPage = () => {
const inlineFieldMetadataItems = availableFieldMetadataItems.filter(
(fieldMetadataItem) =>
- fieldMetadataItem.type !== FieldMetadataType.Relation,
+ fieldMetadataItem.type !== FieldMetadataType.Relation ||
+ (!isRelationFieldCardEnabled &&
+ parseFieldRelationType(fieldMetadataItem) === 'TO_ONE_OBJECT'),
);
const relationFieldMetadataItems = availableFieldMetadataItems.filter(
@@ -265,28 +273,29 @@ export const RecordShowPage = () => {
),
)}
- {relationFieldMetadataItems.map(
- (fieldMetadataItem, index) => (
-
-
-
- ),
- )}
+ {isRelationFieldCardEnabled &&
+ relationFieldMetadataItems.map(
+ (fieldMetadataItem, index) => (
+
+
+
+ ),
+ )}
>
)}
diff --git a/packages/twenty-front/src/modules/workspace/types/FeatureFlagKey.ts b/packages/twenty-front/src/modules/workspace/types/FeatureFlagKey.ts
index a6f029c27..4176e8d41 100644
--- a/packages/twenty-front/src/modules/workspace/types/FeatureFlagKey.ts
+++ b/packages/twenty-front/src/modules/workspace/types/FeatureFlagKey.ts
@@ -1,7 +1,8 @@
export type FeatureFlagKey =
| 'IS_MESSAGING_ENABLED'
| 'IS_NOTE_CREATE_IMAGES_ENABLED'
- | 'IS_RELATION_FIELD_TYPE_ENABLED'
- | 'IS_SELECT_FIELD_TYPE_ENABLED'
| 'IS_QUICK_ACTIONS_ENABLED'
- | 'IS_RATING_FIELD_TYPE_ENABLED';
+ | 'IS_RATING_FIELD_TYPE_ENABLED'
+ | 'IS_RELATION_FIELD_CARD_ENABLED'
+ | 'IS_RELATION_FIELD_TYPE_ENABLED'
+ | 'IS_SELECT_FIELD_TYPE_ENABLED';
diff --git a/packages/twenty-server/src/database/typeorm-seeds/core/demo/feature-flags.ts b/packages/twenty-server/src/database/typeorm-seeds/core/demo/feature-flags.ts
index ea684c266..14e223f91 100644
--- a/packages/twenty-server/src/database/typeorm-seeds/core/demo/feature-flags.ts
+++ b/packages/twenty-server/src/database/typeorm-seeds/core/demo/feature-flags.ts
@@ -28,6 +28,11 @@ export const seedFeatureFlags = async (
workspaceId: workspaceId,
value: true,
},
+ {
+ key: 'IS_RELATION_FIELD_CARD_ENABLED',
+ workspaceId: workspaceId,
+ value: true,
+ },
])
.execute();
};
diff --git a/packages/twenty-server/src/database/typeorm-seeds/core/feature-flags.ts b/packages/twenty-server/src/database/typeorm-seeds/core/feature-flags.ts
index 571a751ad..a72fa0ab1 100644
--- a/packages/twenty-server/src/database/typeorm-seeds/core/feature-flags.ts
+++ b/packages/twenty-server/src/database/typeorm-seeds/core/feature-flags.ts
@@ -38,6 +38,11 @@ export const seedFeatureFlags = async (
workspaceId: workspaceId,
value: true,
},
+ {
+ key: 'IS_RELATION_FIELD_CARD_ENABLED',
+ workspaceId: workspaceId,
+ value: true,
+ },
])
.execute();
};