Skip to content

Commit

Permalink
feat: add feature flag to activate Links field creation
Browse files Browse the repository at this point in the history
Related issue: #3607
  • Loading branch information
thaisguigon committed May 22, 2024
1 parent 5448512 commit dbf780a
Show file tree
Hide file tree
Showing 6 changed files with 32 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,5 @@ export type FeatureFlagKey =
| 'IS_EVENT_OBJECT_ENABLED'
| 'IS_AIRTABLE_INTEGRATION_ENABLED'
| 'IS_POSTGRESQL_INTEGRATION_ENABLED'
| 'IS_STRIPE_INTEGRATION_ENABLED';
| 'IS_STRIPE_INTEGRATION_ENABLED'
| 'IS_LINKS_FIELD_ENABLED';
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,9 @@ import { Section } from '@/ui/layout/section/components/Section';
import { Breadcrumb } from '@/ui/navigation/bread-crumb/components/Breadcrumb';
import { View } from '@/views/types/View';
import { ViewType } from '@/views/types/ViewType';
import { useIsFeatureEnabled } from '@/workspace/hooks/useIsFeatureEnabled';
import { FieldMetadataType } from '~/generated-metadata/graphql';
import { isDefined } from '~/utils/isDefined';
import { isUndefinedOrNull } from '~/utils/isUndefinedOrNull';

type SettingsDataModelNewFieldFormValues = z.infer<
Expand Down Expand Up @@ -109,6 +111,8 @@ export const SettingsObjectNewFieldStep2 = () => {
const { createOneRelationMetadataItem: createOneRelationMetadata } =
useCreateOneRelationMetadataItem();

const isLinksFieldEnabled = useIsFeatureEnabled('IS_LINKS_FIELD_ENABLED');

if (!activeObjectMetadataItem) return null;

const canSave =
Expand Down Expand Up @@ -263,16 +267,18 @@ export const SettingsObjectNewFieldStep2 = () => {
}
};

const excludedFieldTypes: SettingsSupportedFieldType[] = [
FieldMetadataType.Email,
FieldMetadataType.FullName,
FieldMetadataType.Link,
FieldMetadataType.Links,
FieldMetadataType.Numeric,
FieldMetadataType.Probability,
FieldMetadataType.Uuid,
FieldMetadataType.Phone,
];
const excludedFieldTypes: SettingsSupportedFieldType[] = (
[
FieldMetadataType.Email,
FieldMetadataType.FullName,
FieldMetadataType.Link,
isLinksFieldEnabled ? undefined : FieldMetadataType.Links,
FieldMetadataType.Numeric,
FieldMetadataType.Probability,
FieldMetadataType.Uuid,
FieldMetadataType.Phone,
] as const
).filter(isDefined);

return (
// eslint-disable-next-line react/jsx-props-no-spreading
Expand Down
6 changes: 6 additions & 0 deletions packages/twenty-front/src/testing/mock-data/users.ts
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,12 @@ export const mockDefaultWorkspace: Workspace = {
value: true,
workspaceId: '7dfbc3f7-6e5e-4128-957e-8d86808cdf6w',
},
{
id: '1492de61-5018-4368-8923-4f1eeaf988c7',
key: 'IS_LINKS_FIELD_ENABLED',
value: true,
workspaceId: '7dfbc3f7-6e5e-4128-957e-8d86808cdf6w',
},
],
createdAt: '2023-04-26T10:23:42.33625+00:00',
updatedAt: '2023-04-26T10:23:42.33625+00:00',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,11 @@ export const seedFeatureFlags = async (
workspaceId: workspaceId,
value: true,
},
{
key: FeatureFlagKeys.IsLinksFieldEnabled,
workspaceId: workspaceId,
value: true,
},
])
.execute();
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ export enum FeatureFlagKeys {
IsPostgreSQLIntegrationEnabled = 'IS_POSTGRESQL_INTEGRATION_ENABLED',
IsStripeIntegrationEnabled = 'IS_STRIPE_INTEGRATION_ENABLED',
IsGmailSyncV2Enabled = 'IS_GMAIL_SYNC_V2_ENABLED',
IsLinksFieldEnabled = 'IS_LINKS_FIELD_ENABLED',
}

@Entity({ name: 'featureFlag', schema: 'core' })
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ export class AddStandardIdCommand extends CommandRunner {
IS_POSTGRESQL_INTEGRATION_ENABLED: true,
IS_STRIPE_INTEGRATION_ENABLED: false,
IS_GMAIL_SYNC_V2_ENABLED: true,
IS_LINKS_FIELD_ENABLED: true,
},
);
const standardFieldMetadataCollection = this.standardFieldFactory.create(
Expand All @@ -74,6 +75,7 @@ export class AddStandardIdCommand extends CommandRunner {
IS_POSTGRESQL_INTEGRATION_ENABLED: true,
IS_STRIPE_INTEGRATION_ENABLED: false,
IS_GMAIL_SYNC_V2_ENABLED: true,
IS_LINKS_FIELD_ENABLED: true,
},
);

Expand Down

0 comments on commit dbf780a

Please sign in to comment.