@ -1,6 +1,12 @@
|
|||||||
module.exports = {
|
module.exports = {
|
||||||
schema: process.env.REACT_APP_SERVER_BASE_URL + "/graphql",
|
schema: process.env.REACT_APP_SERVER_BASE_URL + '/graphql',
|
||||||
documents: ['!./src/modules/object-metadata/**', '!./src/modules/object-record/**', './src/modules/**/*.tsx', './src/modules/**/*.ts'],
|
documents: [
|
||||||
|
'!./src/modules/object-metadata/**',
|
||||||
|
'!./src/modules/object-record/**',
|
||||||
|
'./src/modules/**/*.tsx',
|
||||||
|
'./src/modules/**/*.ts',
|
||||||
|
'!./src/**/*.test.tsx',
|
||||||
|
],
|
||||||
overwrite: true,
|
overwrite: true,
|
||||||
generates: {
|
generates: {
|
||||||
'./src/generated/graphql.tsx': {
|
'./src/generated/graphql.tsx': {
|
||||||
@ -16,7 +22,7 @@ module.exports = {
|
|||||||
withComponent: false,
|
withComponent: false,
|
||||||
scalars: {
|
scalars: {
|
||||||
DateTime: 'string',
|
DateTime: 'string',
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
@ -4,6 +4,7 @@ import { useRecoilState } from 'recoil';
|
|||||||
import { useFavorites } from '@/favorites/hooks/useFavorites';
|
import { useFavorites } from '@/favorites/hooks/useFavorites';
|
||||||
import { useObjectMetadataItem } from '@/object-metadata/hooks/useObjectMetadataItem';
|
import { useObjectMetadataItem } from '@/object-metadata/hooks/useObjectMetadataItem';
|
||||||
import { formatFieldMetadataItemAsColumnDefinition } from '@/object-metadata/utils/formatFieldMetadataItemAsColumnDefinition';
|
import { formatFieldMetadataItemAsColumnDefinition } from '@/object-metadata/utils/formatFieldMetadataItemAsColumnDefinition';
|
||||||
|
import { parseFieldRelationType } from '@/object-metadata/utils/parseFieldRelationType';
|
||||||
import { parseFieldType } from '@/object-metadata/utils/parseFieldType';
|
import { parseFieldType } from '@/object-metadata/utils/parseFieldType';
|
||||||
import {
|
import {
|
||||||
FieldContext,
|
FieldContext,
|
||||||
@ -30,6 +31,7 @@ import { ShowPageSummaryCard } from '@/ui/layout/show-page/components/ShowPageSu
|
|||||||
import { ShowPageRecoilScopeContext } from '@/ui/layout/states/ShowPageRecoilScopeContext';
|
import { ShowPageRecoilScopeContext } from '@/ui/layout/states/ShowPageRecoilScopeContext';
|
||||||
import { PageTitle } from '@/ui/utilities/page-title/PageTitle';
|
import { PageTitle } from '@/ui/utilities/page-title/PageTitle';
|
||||||
import { RecoilScope } from '@/ui/utilities/recoil-scope/components/RecoilScope';
|
import { RecoilScope } from '@/ui/utilities/recoil-scope/components/RecoilScope';
|
||||||
|
import { useIsFeatureEnabled } from '@/workspace/hooks/useIsFeatureEnabled';
|
||||||
import {
|
import {
|
||||||
FieldMetadataType,
|
FieldMetadataType,
|
||||||
FileFolder,
|
FileFolder,
|
||||||
@ -139,6 +141,10 @@ export const RecordShowPage = () => {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const isRelationFieldCardEnabled = useIsFeatureEnabled(
|
||||||
|
'IS_RELATION_FIELD_CARD_ENABLED',
|
||||||
|
);
|
||||||
|
|
||||||
const availableFieldMetadataItems = objectMetadataItem.fields
|
const availableFieldMetadataItems = objectMetadataItem.fields
|
||||||
.filter(
|
.filter(
|
||||||
(fieldMetadataItem) =>
|
(fieldMetadataItem) =>
|
||||||
@ -151,7 +157,9 @@ export const RecordShowPage = () => {
|
|||||||
|
|
||||||
const inlineFieldMetadataItems = availableFieldMetadataItems.filter(
|
const inlineFieldMetadataItems = availableFieldMetadataItems.filter(
|
||||||
(fieldMetadataItem) =>
|
(fieldMetadataItem) =>
|
||||||
fieldMetadataItem.type !== FieldMetadataType.Relation,
|
fieldMetadataItem.type !== FieldMetadataType.Relation ||
|
||||||
|
(!isRelationFieldCardEnabled &&
|
||||||
|
parseFieldRelationType(fieldMetadataItem) === 'TO_ONE_OBJECT'),
|
||||||
);
|
);
|
||||||
|
|
||||||
const relationFieldMetadataItems = availableFieldMetadataItems.filter(
|
const relationFieldMetadataItems = availableFieldMetadataItems.filter(
|
||||||
@ -265,28 +273,29 @@ export const RecordShowPage = () => {
|
|||||||
),
|
),
|
||||||
)}
|
)}
|
||||||
</PropertyBox>
|
</PropertyBox>
|
||||||
{relationFieldMetadataItems.map(
|
{isRelationFieldCardEnabled &&
|
||||||
(fieldMetadataItem, index) => (
|
relationFieldMetadataItems.map(
|
||||||
<FieldContext.Provider
|
(fieldMetadataItem, index) => (
|
||||||
key={record.id + fieldMetadataItem.id}
|
<FieldContext.Provider
|
||||||
value={{
|
key={record.id + fieldMetadataItem.id}
|
||||||
entityId: record.id,
|
value={{
|
||||||
recoilScopeId: record.id + fieldMetadataItem.id,
|
entityId: record.id,
|
||||||
isLabelIdentifier: false,
|
recoilScopeId: record.id + fieldMetadataItem.id,
|
||||||
fieldDefinition:
|
isLabelIdentifier: false,
|
||||||
formatFieldMetadataItemAsColumnDefinition({
|
fieldDefinition:
|
||||||
field: fieldMetadataItem,
|
formatFieldMetadataItemAsColumnDefinition({
|
||||||
position: index,
|
field: fieldMetadataItem,
|
||||||
objectMetadataItem,
|
position: index,
|
||||||
}),
|
objectMetadataItem,
|
||||||
useUpdateRecord: useUpdateOneObjectRecordMutation,
|
}),
|
||||||
hotkeyScope: InlineCellHotkeyScope.InlineCell,
|
useUpdateRecord: useUpdateOneObjectRecordMutation,
|
||||||
}}
|
hotkeyScope: InlineCellHotkeyScope.InlineCell,
|
||||||
>
|
}}
|
||||||
<RecordRelationFieldCardSection />
|
>
|
||||||
</FieldContext.Provider>
|
<RecordRelationFieldCardSection />
|
||||||
),
|
</FieldContext.Provider>
|
||||||
)}
|
),
|
||||||
|
)}
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
</ShowPageLeftContainer>
|
</ShowPageLeftContainer>
|
||||||
|
|||||||
@ -1,7 +1,8 @@
|
|||||||
export type FeatureFlagKey =
|
export type FeatureFlagKey =
|
||||||
| 'IS_MESSAGING_ENABLED'
|
| 'IS_MESSAGING_ENABLED'
|
||||||
| 'IS_NOTE_CREATE_IMAGES_ENABLED'
|
| 'IS_NOTE_CREATE_IMAGES_ENABLED'
|
||||||
| 'IS_RELATION_FIELD_TYPE_ENABLED'
|
|
||||||
| 'IS_SELECT_FIELD_TYPE_ENABLED'
|
|
||||||
| 'IS_QUICK_ACTIONS_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';
|
||||||
|
|||||||
@ -28,6 +28,11 @@ export const seedFeatureFlags = async (
|
|||||||
workspaceId: workspaceId,
|
workspaceId: workspaceId,
|
||||||
value: true,
|
value: true,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
key: 'IS_RELATION_FIELD_CARD_ENABLED',
|
||||||
|
workspaceId: workspaceId,
|
||||||
|
value: true,
|
||||||
|
},
|
||||||
])
|
])
|
||||||
.execute();
|
.execute();
|
||||||
};
|
};
|
||||||
|
|||||||
@ -38,6 +38,11 @@ export const seedFeatureFlags = async (
|
|||||||
workspaceId: workspaceId,
|
workspaceId: workspaceId,
|
||||||
value: true,
|
value: true,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
key: 'IS_RELATION_FIELD_CARD_ENABLED',
|
||||||
|
workspaceId: workspaceId,
|
||||||
|
value: true,
|
||||||
|
},
|
||||||
])
|
])
|
||||||
.execute();
|
.execute();
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user