From 0b93a6785b6e76b49b60371e3305c28ab75915fb Mon Sep 17 00:00:00 2001 From: bosiraphael <71827178+bosiraphael@users.noreply.github.com> Date: Thu, 15 Feb 2024 17:18:04 +0100 Subject: [PATCH] 3815 blocklist connect frontend (#3930) * wip * wip * move blocklist to connectedAccount * wip * format date * fix styling * renaming * fix imports * fix imports * Rename BlockListItem.ts to BlocklistItem.ts * Add IS_BLOCKLIST_ENABLED feature flag and remove IS_MESSAGING_ENABLED gate at model creation * hide blocklist if feature flag is disabled --- .../modules/accounts/types/BlockedEmail.ts | 5 -- .../modules/accounts/types/BlocklistItem.ts | 6 +++ .../types/CoreObjectNameSingular.ts | 1 + .../SettingsAccountsEmailsBlocklistInput.tsx | 1 - ...SettingsAccountsEmailsBlocklistSection.tsx | 53 +++++++++++-------- .../SettingsAccountsEmailsBlocklistTable.tsx | 47 +++++++++------- ...ettingsAccountsEmailsBlocklistTableRow.tsx | 17 +++--- .../modules/workspace/types/FeatureFlagKey.ts | 1 + .../settings/accounts/SettingsAccounts.tsx | 5 ++ .../accounts/SettingsAccountsEmails.tsx | 2 - .../src/testing/mock-data/accounts.ts | 38 ------------- .../core/feature-flag/feature-flag.entity.ts | 1 + .../typeorm-seeds/core/feature-flags.ts | 5 ++ .../blocklist.object-metadata.ts | 2 +- .../connected-account.object-metadata.ts | 4 -- ...nel-message-association.object-metadata.ts | 4 -- .../message-channel.object-metadata.ts | 4 -- .../message-participant.object-metadata.ts | 4 -- .../message-thread.object-metadata.ts | 4 -- .../message.object-metadata.ts | 4 -- .../person.object-metadata.ts | 4 -- .../workspace-member.object-metadata.ts | 8 +-- 22 files changed, 91 insertions(+), 129 deletions(-) delete mode 100644 packages/twenty-front/src/modules/accounts/types/BlockedEmail.ts create mode 100644 packages/twenty-front/src/modules/accounts/types/BlocklistItem.ts delete mode 100644 packages/twenty-front/src/testing/mock-data/accounts.ts diff --git a/packages/twenty-front/src/modules/accounts/types/BlockedEmail.ts b/packages/twenty-front/src/modules/accounts/types/BlockedEmail.ts deleted file mode 100644 index 65958c0bf..000000000 --- a/packages/twenty-front/src/modules/accounts/types/BlockedEmail.ts +++ /dev/null @@ -1,5 +0,0 @@ -export type BlockedEmail = { - id: string; - email: string; - blocked_at: string; -}; diff --git a/packages/twenty-front/src/modules/accounts/types/BlocklistItem.ts b/packages/twenty-front/src/modules/accounts/types/BlocklistItem.ts new file mode 100644 index 000000000..56ca9ef1e --- /dev/null +++ b/packages/twenty-front/src/modules/accounts/types/BlocklistItem.ts @@ -0,0 +1,6 @@ +export type BlocklistItem = { + id: string; + handle: string; + workspaceMemberId: string; + createdAt: string; +}; diff --git a/packages/twenty-front/src/modules/object-metadata/types/CoreObjectNameSingular.ts b/packages/twenty-front/src/modules/object-metadata/types/CoreObjectNameSingular.ts index 7169277af..9a5aa1c08 100644 --- a/packages/twenty-front/src/modules/object-metadata/types/CoreObjectNameSingular.ts +++ b/packages/twenty-front/src/modules/object-metadata/types/CoreObjectNameSingular.ts @@ -3,6 +3,7 @@ export enum CoreObjectNameSingular { ActivityTarget = 'activityTarget', ApiKey = 'apiKey', Attachment = 'attachment', + Blocklist = 'blocklist', Comment = 'comment', Company = 'company', ConenctedAccount = 'conenctedAccount', diff --git a/packages/twenty-front/src/modules/settings/accounts/components/SettingsAccountsEmailsBlocklistInput.tsx b/packages/twenty-front/src/modules/settings/accounts/components/SettingsAccountsEmailsBlocklistInput.tsx index 754c5c935..76b9f2204 100644 --- a/packages/twenty-front/src/modules/settings/accounts/components/SettingsAccountsEmailsBlocklistInput.tsx +++ b/packages/twenty-front/src/modules/settings/accounts/components/SettingsAccountsEmailsBlocklistInput.tsx @@ -8,7 +8,6 @@ import { TextInput } from '@/ui/input/components/TextInput'; const StyledContainer = styled.div` display: flex; flex-direction: row; - margin-bottom: 16px; `; const StyledLinkContainer = styled.div` diff --git a/packages/twenty-front/src/modules/settings/accounts/components/SettingsAccountsEmailsBlocklistSection.tsx b/packages/twenty-front/src/modules/settings/accounts/components/SettingsAccountsEmailsBlocklistSection.tsx index 53272743e..28646b9d8 100644 --- a/packages/twenty-front/src/modules/settings/accounts/components/SettingsAccountsEmailsBlocklistSection.tsx +++ b/packages/twenty-front/src/modules/settings/accounts/components/SettingsAccountsEmailsBlocklistSection.tsx @@ -1,32 +1,43 @@ -import { useState } from 'react'; -import { v4 } from 'uuid'; +import { useRecoilValue } from 'recoil'; +import { BlocklistItem } from '@/accounts/types/BlocklistItem'; +import { currentWorkspaceMemberState } from '@/auth/states/currentWorkspaceMemberState'; +import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular'; +import { useCreateOneRecord } from '@/object-record/hooks/useCreateOneRecord'; +import { useDeleteOneRecord } from '@/object-record/hooks/useDeleteOneRecord'; +import { useFindManyRecords } from '@/object-record/hooks/useFindManyRecords'; import { SettingsAccountsEmailsBlocklistInput } from '@/settings/accounts/components/SettingsAccountsEmailsBlocklistInput'; import { SettingsAccountsEmailsBlocklistTable } from '@/settings/accounts/components/SettingsAccountsEmailsBlocklistTable'; import { H2Title } from '@/ui/display/typography/components/H2Title'; import { Section } from '@/ui/layout/section/components/Section'; -import { mockedBlockedEmailList } from '~/testing/mock-data/accounts'; -import { formatDate } from '~/utils/date-utils'; export const SettingsAccountsEmailsBlocklistSection = () => { - const [blockedEmailList, setBlockedEmailList] = useState( - mockedBlockedEmailList, - ); + const currentWorkspaceMember = useRecoilValue(currentWorkspaceMemberState); - const handleBlockedEmailRemove = (id: string) => - setBlockedEmailList((previousBlockedEmailList) => - previousBlockedEmailList.filter((blockedEmail) => blockedEmail.id !== id), - ); + const { records: blocklist } = useFindManyRecords({ + objectNameSingular: CoreObjectNameSingular.Blocklist, + }); + + const { createOneRecord: createBlocklistItem } = + useCreateOneRecord({ + objectNameSingular: CoreObjectNameSingular.Blocklist, + }); + + const { deleteOneRecord: deleteBlocklistItem } = useDeleteOneRecord({ + objectNameSingular: CoreObjectNameSingular.Blocklist, + }); + + const handleBlockedEmailRemove = (id: string) => { + deleteBlocklistItem(id); + }; + + const updateBlockedEmailList = (handle: string) => { + createBlocklistItem({ + handle, + workspaceMemberId: currentWorkspaceMember?.id, + }); + }; - const updateBlockedEmailList = (email: string) => - setBlockedEmailList((prevState) => [ - ...prevState, - { - id: v4(), - email: email, - blocked_at: formatDate(new Date(), 'dd/LL/yyyy'), - }, - ]); return (
{ updateBlockedEmailList={updateBlockedEmailList} />
diff --git a/packages/twenty-front/src/modules/settings/accounts/components/SettingsAccountsEmailsBlocklistTable.tsx b/packages/twenty-front/src/modules/settings/accounts/components/SettingsAccountsEmailsBlocklistTable.tsx index 0278fa55f..a238ef6e5 100644 --- a/packages/twenty-front/src/modules/settings/accounts/components/SettingsAccountsEmailsBlocklistTable.tsx +++ b/packages/twenty-front/src/modules/settings/accounts/components/SettingsAccountsEmailsBlocklistTable.tsx @@ -1,6 +1,6 @@ import styled from '@emotion/styled'; -import { BlockedEmail } from '@/accounts/types/BlockedEmail'; +import { BlocklistItem } from '@/accounts/types/BlocklistItem'; import { SettingsAccountsEmailsBlocklistTableRow } from '@/settings/accounts/components/SettingsAccountsEmailsBlocklistTableRow'; import { Table } from '@/ui/layout/table/components/Table'; import { TableBody } from '@/ui/layout/table/components/TableBody'; @@ -8,33 +8,42 @@ import { TableHeader } from '@/ui/layout/table/components/TableHeader'; import { TableRow } from '@/ui/layout/table/components/TableRow'; type SettingsAccountsEmailsBlocklistTableProps = { - blockedEmailList: BlockedEmail[]; + blocklist: BlocklistItem[]; handleBlockedEmailRemove: (id: string) => void; }; + +const StyledTable = styled(Table)` + margin-top: ${({ theme }) => theme.spacing(4)}; +`; + const StyledTableBody = styled(TableBody)` border-bottom: 1px solid ${({ theme }) => theme.border.color.light}; `; export const SettingsAccountsEmailsBlocklistTable = ({ - blockedEmailList, + blocklist, handleBlockedEmailRemove, }: SettingsAccountsEmailsBlocklistTableProps) => { return ( - - - Email/Domain - Added to blocklist - - - - {blockedEmailList.map((blockedEmail) => ( - - ))} - -
+ <> + {blocklist.length > 0 && ( + + + Email/Domain + Added to blocklist + + + + {blocklist.map((blocklistItem) => ( + + ))} + + + )} + ); }; diff --git a/packages/twenty-front/src/modules/settings/accounts/components/SettingsAccountsEmailsBlocklistTableRow.tsx b/packages/twenty-front/src/modules/settings/accounts/components/SettingsAccountsEmailsBlocklistTableRow.tsx index dac56fa65..763c78304 100644 --- a/packages/twenty-front/src/modules/settings/accounts/components/SettingsAccountsEmailsBlocklistTableRow.tsx +++ b/packages/twenty-front/src/modules/settings/accounts/components/SettingsAccountsEmailsBlocklistTableRow.tsx @@ -1,26 +1,29 @@ -import { BlockedEmail } from '@/accounts/types/BlockedEmail'; +import { BlocklistItem } from '@/accounts/types/BlocklistItem'; import { IconX } from '@/ui/display/icon'; import { IconButton } from '@/ui/input/button/components/IconButton'; import { TableCell } from '@/ui/layout/table/components/TableCell'; import { TableRow } from '@/ui/layout/table/components/TableRow'; +import { formatToHumanReadableDate } from '~/utils'; type SettingsAccountsEmailsBlocklistTableRowProps = { - blockedEmail: BlockedEmail; + blocklistItem: BlocklistItem; onRemove: (id: string) => void; }; export const SettingsAccountsEmailsBlocklistTableRow = ({ - blockedEmail, + blocklistItem, onRemove, }: SettingsAccountsEmailsBlocklistTableRowProps) => { return ( - - {blockedEmail.email} - {blockedEmail.blocked_at} + + {blocklistItem.handle} + + {formatToHumanReadableDate(blocklistItem.createdAt)} + { - onRemove(blockedEmail.id); + onRemove(blocklistItem.id); }} variant="tertiary" size="small" diff --git a/packages/twenty-front/src/modules/workspace/types/FeatureFlagKey.ts b/packages/twenty-front/src/modules/workspace/types/FeatureFlagKey.ts index ea63653e7..3d23fb7d2 100644 --- a/packages/twenty-front/src/modules/workspace/types/FeatureFlagKey.ts +++ b/packages/twenty-front/src/modules/workspace/types/FeatureFlagKey.ts @@ -1,5 +1,6 @@ export type FeatureFlagKey = | 'IS_MESSAGING_ENABLED' + | 'IS_BLOCKLIST_ENABLED' | 'IS_INTEGRATIONS_ENABLED' | 'IS_QUICK_ACTIONS_ENABLED' | 'IS_NEW_RECORD_BOARD_ENABLED'; diff --git a/packages/twenty-front/src/pages/settings/accounts/SettingsAccounts.tsx b/packages/twenty-front/src/pages/settings/accounts/SettingsAccounts.tsx index 3fc0f80ec..72576db59 100644 --- a/packages/twenty-front/src/pages/settings/accounts/SettingsAccounts.tsx +++ b/packages/twenty-front/src/pages/settings/accounts/SettingsAccounts.tsx @@ -4,11 +4,13 @@ import { ConnectedAccount } from '@/accounts/types/ConnectedAccount'; import { currentWorkspaceMemberState } from '@/auth/states/currentWorkspaceMemberState'; import { useFindManyRecords } from '@/object-record/hooks/useFindManyRecords'; import { SettingsAccountsConnectedAccountsSection } from '@/settings/accounts/components/SettingsAccountsConnectedAccountsSection'; +import { SettingsAccountsEmailsBlocklistSection } from '@/settings/accounts/components/SettingsAccountsEmailsBlocklistSection'; import { SettingsAccountsSettingsSection } from '@/settings/accounts/components/SettingsAccountsSettingsSection'; import { SettingsPageContainer } from '@/settings/components/SettingsPageContainer'; import { IconSettings } from '@/ui/display/icon'; import { SubMenuTopBarContainer } from '@/ui/layout/page/SubMenuTopBarContainer'; import { Breadcrumb } from '@/ui/navigation/bread-crumb/components/Breadcrumb'; +import { useIsFeatureEnabled } from '@/workspace/hooks/useIsFeatureEnabled'; import { SettingsAccountLoader } from '~/pages/settings/accounts/SettingsAccountLoader'; export const SettingsAccounts = () => { @@ -23,6 +25,8 @@ export const SettingsAccounts = () => { }, }); + const isBlocklistEnabled = useIsFeatureEnabled('IS_BLOCKLIST_ENABLED'); + return ( { ) : ( <> + {isBlocklistEnabled && } )} diff --git a/packages/twenty-front/src/pages/settings/accounts/SettingsAccountsEmails.tsx b/packages/twenty-front/src/pages/settings/accounts/SettingsAccountsEmails.tsx index 507f9c39d..f46dc331e 100644 --- a/packages/twenty-front/src/pages/settings/accounts/SettingsAccountsEmails.tsx +++ b/packages/twenty-front/src/pages/settings/accounts/SettingsAccountsEmails.tsx @@ -1,4 +1,3 @@ -import { SettingsAccountsEmailsBlocklistSection } from '@/settings/accounts/components/SettingsAccountsEmailsBlocklistSection'; import { SettingsAccountsEmailsSyncSection } from '@/settings/accounts/components/SettingsAccountsEmailsSyncSection'; import { SettingsPageContainer } from '@/settings/components/SettingsPageContainer'; import { IconSettings } from '@/ui/display/icon'; @@ -15,7 +14,6 @@ export const SettingsAccountsEmails = () => ( ]} /> - ); diff --git a/packages/twenty-front/src/testing/mock-data/accounts.ts b/packages/twenty-front/src/testing/mock-data/accounts.ts deleted file mode 100644 index 41e74d649..000000000 --- a/packages/twenty-front/src/testing/mock-data/accounts.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { BlockedEmail } from '@/accounts/types/BlockedEmail'; -import { MessageChannel } from '@/accounts/types/MessageChannel'; -import { InboxSettingsVisibilityValue } from '@/settings/accounts/components/SettingsAccountsInboxSettingsVisibilitySection'; - -export const mockedAccounts: MessageChannel[] = [ - { - handle: 'thomas@twenty.com', - isSynced: true, - isContactAutoCreationEnabled: true, - id: '0794b782-f52e-48c3-977e-b0f57f90de24', - visibility: InboxSettingsVisibilityValue.Everything, - }, - { - handle: 'thomas@twenty.dev', - isSynced: false, - isContactAutoCreationEnabled: true, - id: 'dc66a7ec-56b2-425b-a8e8-26ff0396c3aa', - visibility: InboxSettingsVisibilityValue.Metadata, - }, -]; - -export const mockedBlockedEmailList: BlockedEmail[] = [ - { - email: 'thomas@twenty.com', - id: '9594b782-232e-48c3-977e-b0f57f90de24', - blocked_at: '12/06/2023', - }, - { - email: 'tim@apple.com', - id: 'ac64a7ec-76b2-325b-a8e8-28ff0396c3aa', - blocked_at: '11/06/2023', - }, - { - email: '@microsoft.com', - id: 'ac6445ec-76b2-325b-58e8-28340396c3ff', - blocked_at: '04/06/2023', - }, -]; diff --git a/packages/twenty-server/src/core/feature-flag/feature-flag.entity.ts b/packages/twenty-server/src/core/feature-flag/feature-flag.entity.ts index ad226e829..d09f135c8 100644 --- a/packages/twenty-server/src/core/feature-flag/feature-flag.entity.ts +++ b/packages/twenty-server/src/core/feature-flag/feature-flag.entity.ts @@ -16,6 +16,7 @@ import { Workspace } from 'src/core/workspace/workspace.entity'; export enum FeatureFlagKeys { IsIntegrationsEnabled = 'IS_INTEGRATIONS_ENABLED', IsMessagingEnabled = 'IS_MESSAGING_ENABLED', + IsBlocklistEnabled = 'IS_BLOCKLIST_ENABLED', IsWorkspaceCleanable = 'IS_WORKSPACE_CLEANABLE', IsNewRecordBoardEnabled = 'IS_NEW_RECORD_BOARD_ENABLED', } 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 3d992d6fa..5d0a77fea 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 @@ -20,6 +20,11 @@ export const seedFeatureFlags = async ( workspaceId: workspaceId, value: true, }, + { + key: FeatureFlagKeys.IsBlocklistEnabled, + workspaceId: workspaceId, + value: true, + }, { key: FeatureFlagKeys.IsWorkspaceCleanable, workspaceId: workspaceId, diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/blocklist.object-metadata.ts b/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/blocklist.object-metadata.ts index 797ade3e1..4c7640e1a 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/blocklist.object-metadata.ts +++ b/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/blocklist.object-metadata.ts @@ -14,7 +14,7 @@ import { WorkspaceMemberObjectMetadata } from 'src/workspace/workspace-sync-meta icon: 'IconForbid2', }) @Gate({ - featureFlag: 'IS_MESSAGING_ENABLED', + featureFlag: 'IS_BLOCKLIST_ENABLED', }) @IsSystem() export class BlocklistObjectMetadata extends BaseObjectMetadata { diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/connected-account.object-metadata.ts b/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/connected-account.object-metadata.ts index a14f99384..f29176bc2 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/connected-account.object-metadata.ts +++ b/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/connected-account.object-metadata.ts @@ -1,7 +1,6 @@ import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; import { RelationMetadataType } from 'src/metadata/relation-metadata/relation-metadata.entity'; import { FieldMetadata } from 'src/workspace/workspace-sync-metadata/decorators/field-metadata.decorator'; -import { Gate } from 'src/workspace/workspace-sync-metadata/decorators/gate.decorator'; import { IsNullable } from 'src/workspace/workspace-sync-metadata/decorators/is-nullable.decorator'; import { IsSystem } from 'src/workspace/workspace-sync-metadata/decorators/is-system.decorator'; import { ObjectMetadata } from 'src/workspace/workspace-sync-metadata/decorators/object-metadata.decorator'; @@ -17,9 +16,6 @@ import { WorkspaceMemberObjectMetadata } from 'src/workspace/workspace-sync-meta description: 'A connected account', icon: 'IconAt', }) -@Gate({ - featureFlag: 'IS_MESSAGING_ENABLED', -}) @IsSystem() export class ConnectedAccountObjectMetadata extends BaseObjectMetadata { @FieldMetadata({ diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/message-channel-message-association.object-metadata.ts b/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/message-channel-message-association.object-metadata.ts index e0b8cf588..2e9472aa3 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/message-channel-message-association.object-metadata.ts +++ b/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/message-channel-message-association.object-metadata.ts @@ -1,6 +1,5 @@ import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; import { FieldMetadata } from 'src/workspace/workspace-sync-metadata/decorators/field-metadata.decorator'; -import { Gate } from 'src/workspace/workspace-sync-metadata/decorators/gate.decorator'; import { IsNullable } from 'src/workspace/workspace-sync-metadata/decorators/is-nullable.decorator'; import { IsSystem } from 'src/workspace/workspace-sync-metadata/decorators/is-system.decorator'; import { ObjectMetadata } from 'src/workspace/workspace-sync-metadata/decorators/object-metadata.decorator'; @@ -16,9 +15,6 @@ import { MessageObjectMetadata } from 'src/workspace/workspace-sync-metadata/sta description: 'Message Synced with a Message Channel', icon: 'IconMessage', }) -@Gate({ - featureFlag: 'IS_MESSAGING_ENABLED', -}) @IsSystem() export class MessageChannelMessageAssociationObjectMetadata extends BaseObjectMetadata { @FieldMetadata({ diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/message-channel.object-metadata.ts b/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/message-channel.object-metadata.ts index 03a0d1216..2019ddfe3 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/message-channel.object-metadata.ts +++ b/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/message-channel.object-metadata.ts @@ -1,7 +1,6 @@ import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; import { RelationMetadataType } from 'src/metadata/relation-metadata/relation-metadata.entity'; import { FieldMetadata } from 'src/workspace/workspace-sync-metadata/decorators/field-metadata.decorator'; -import { Gate } from 'src/workspace/workspace-sync-metadata/decorators/gate.decorator'; import { IsNullable } from 'src/workspace/workspace-sync-metadata/decorators/is-nullable.decorator'; import { IsSystem } from 'src/workspace/workspace-sync-metadata/decorators/is-system.decorator'; import { ObjectMetadata } from 'src/workspace/workspace-sync-metadata/decorators/object-metadata.decorator'; @@ -17,9 +16,6 @@ import { MessageChannelMessageAssociationObjectMetadata } from 'src/workspace/wo description: 'Message Channels', icon: 'IconMessage', }) -@Gate({ - featureFlag: 'IS_MESSAGING_ENABLED', -}) @IsSystem() export class MessageChannelObjectMetadata extends BaseObjectMetadata { @FieldMetadata({ diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/message-participant.object-metadata.ts b/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/message-participant.object-metadata.ts index 8afd64d96..70ee2dffa 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/message-participant.object-metadata.ts +++ b/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/message-participant.object-metadata.ts @@ -1,6 +1,5 @@ import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; import { FieldMetadata } from 'src/workspace/workspace-sync-metadata/decorators/field-metadata.decorator'; -import { Gate } from 'src/workspace/workspace-sync-metadata/decorators/gate.decorator'; import { IsNullable } from 'src/workspace/workspace-sync-metadata/decorators/is-nullable.decorator'; import { IsSystem } from 'src/workspace/workspace-sync-metadata/decorators/is-system.decorator'; import { ObjectMetadata } from 'src/workspace/workspace-sync-metadata/decorators/object-metadata.decorator'; @@ -16,9 +15,6 @@ import { WorkspaceMemberObjectMetadata } from 'src/workspace/workspace-sync-meta description: 'Message Participants', icon: 'IconUserCircle', }) -@Gate({ - featureFlag: 'IS_MESSAGING_ENABLED', -}) @IsSystem() export class MessageParticipantObjectMetadata extends BaseObjectMetadata { @FieldMetadata({ diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/message-thread.object-metadata.ts b/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/message-thread.object-metadata.ts index a5c3f0c0f..cbdaca2d4 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/message-thread.object-metadata.ts +++ b/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/message-thread.object-metadata.ts @@ -1,7 +1,6 @@ import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; import { RelationMetadataType } from 'src/metadata/relation-metadata/relation-metadata.entity'; import { FieldMetadata } from 'src/workspace/workspace-sync-metadata/decorators/field-metadata.decorator'; -import { Gate } from 'src/workspace/workspace-sync-metadata/decorators/gate.decorator'; import { IsNullable } from 'src/workspace/workspace-sync-metadata/decorators/is-nullable.decorator'; import { IsSystem } from 'src/workspace/workspace-sync-metadata/decorators/is-system.decorator'; import { ObjectMetadata } from 'src/workspace/workspace-sync-metadata/decorators/object-metadata.decorator'; @@ -17,9 +16,6 @@ import { MessageObjectMetadata } from 'src/workspace/workspace-sync-metadata/sta description: 'Message Thread', icon: 'IconMessage', }) -@Gate({ - featureFlag: 'IS_MESSAGING_ENABLED', -}) @IsSystem() export class MessageThreadObjectMetadata extends BaseObjectMetadata { @FieldMetadata({ diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/message.object-metadata.ts b/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/message.object-metadata.ts index 15ce6ed89..bf40de010 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/message.object-metadata.ts +++ b/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/message.object-metadata.ts @@ -1,7 +1,6 @@ import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; import { RelationMetadataType } from 'src/metadata/relation-metadata/relation-metadata.entity'; import { FieldMetadata } from 'src/workspace/workspace-sync-metadata/decorators/field-metadata.decorator'; -import { Gate } from 'src/workspace/workspace-sync-metadata/decorators/gate.decorator'; import { IsNullable } from 'src/workspace/workspace-sync-metadata/decorators/is-nullable.decorator'; import { IsSystem } from 'src/workspace/workspace-sync-metadata/decorators/is-system.decorator'; import { ObjectMetadata } from 'src/workspace/workspace-sync-metadata/decorators/object-metadata.decorator'; @@ -18,9 +17,6 @@ import { MessageThreadObjectMetadata } from 'src/workspace/workspace-sync-metada description: 'Message', icon: 'IconMessage', }) -@Gate({ - featureFlag: 'IS_MESSAGING_ENABLED', -}) @IsSystem() export class MessageObjectMetadata extends BaseObjectMetadata { @FieldMetadata({ diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/person.object-metadata.ts b/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/person.object-metadata.ts index 674e66d8b..ab6ad554a 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/person.object-metadata.ts +++ b/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/person.object-metadata.ts @@ -3,7 +3,6 @@ import { LinkMetadata } from 'src/metadata/field-metadata/composite-types/link.c import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity'; import { RelationMetadataType } from 'src/metadata/relation-metadata/relation-metadata.entity'; import { FieldMetadata } from 'src/workspace/workspace-sync-metadata/decorators/field-metadata.decorator'; -import { Gate } from 'src/workspace/workspace-sync-metadata/decorators/gate.decorator'; import { IsNullable } from 'src/workspace/workspace-sync-metadata/decorators/is-nullable.decorator'; import { IsSystem } from 'src/workspace/workspace-sync-metadata/decorators/is-system.decorator'; import { ObjectMetadata } from 'src/workspace/workspace-sync-metadata/decorators/object-metadata.decorator'; @@ -177,9 +176,6 @@ export class PersonObjectMetadata extends BaseObjectMetadata { objectName: 'messageParticipant', inverseSideFieldName: 'person', }) - @Gate({ - featureFlag: 'IS_MESSAGING_ENABLED', - }) @IsNullable() messageParticipants: MessageParticipantObjectMetadata[]; } diff --git a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/workspace-member.object-metadata.ts b/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/workspace-member.object-metadata.ts index 5eac01a6c..2879e55d4 100644 --- a/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/workspace-member.object-metadata.ts +++ b/packages/twenty-server/src/workspace/workspace-sync-metadata/standard-objects/workspace-member.object-metadata.ts @@ -171,9 +171,6 @@ export class WorkspaceMemberObjectMetadata extends BaseObjectMetadata { objectName: 'connectedAccount', inverseSideFieldName: 'accountOwner', }) - @Gate({ - featureFlag: 'IS_MESSAGING_ENABLED', - }) @IsNullable() connectedAccounts: ConnectedAccountObjectMetadata[]; @@ -188,9 +185,6 @@ export class WorkspaceMemberObjectMetadata extends BaseObjectMetadata { objectName: 'messageParticipant', inverseSideFieldName: 'workspaceMember', }) - @Gate({ - featureFlag: 'IS_MESSAGING_ENABLED', - }) @IsNullable() messageParticipants: MessageParticipantObjectMetadata[]; @@ -206,7 +200,7 @@ export class WorkspaceMemberObjectMetadata extends BaseObjectMetadata { inverseSideFieldName: 'workspaceMember', }) @Gate({ - featureFlag: 'IS_MESSAGING_ENABLED', + featureFlag: 'IS_BLOCKLIST_ENABLED', }) @IsNullable() blocklist: BlocklistObjectMetadata[];