diff --git a/packages/twenty-front/src/modules/onboarding/components/OnboardingSyncEmailsSettingsCard.tsx b/packages/twenty-front/src/modules/onboarding/components/OnboardingSyncEmailsSettingsCard.tsx index b1be41995..364ac47bb 100644 --- a/packages/twenty-front/src/modules/onboarding/components/OnboardingSyncEmailsSettingsCard.tsx +++ b/packages/twenty-front/src/modules/onboarding/components/OnboardingSyncEmailsSettingsCard.tsx @@ -1,5 +1,7 @@ -import { onboardingSyncEmailsOptions } from '@/onboarding/components/onboardingSyncEmailsOptions'; +import { ONBOARDING_SYNC_EMAILS_OPTIONS } from '@/onboarding/constants/OnboardingSyncEmailsOptions'; import { SettingsAccountsRadioSettingsCard } from '@/settings/accounts/components/SettingsAccountsRadioSettingsCard'; +import { SettingsAccountsVisibilityIcon } from '@/settings/accounts/components/SettingsAccountsVisibilityIcon'; +import styled from '@emotion/styled'; import { MessageChannelVisibility } from '~/generated/graphql'; type OnboardingSyncEmailsSettingsCardProps = { @@ -7,14 +9,31 @@ type OnboardingSyncEmailsSettingsCardProps = { value?: MessageChannelVisibility; }; +const StyledCardMedia = styled(SettingsAccountsVisibilityIcon)` + width: ${({ theme }) => theme.spacing(10)}; +`; + export const OnboardingSyncEmailsSettingsCard = ({ onChange, value = MessageChannelVisibility.SHARE_EVERYTHING, -}: OnboardingSyncEmailsSettingsCardProps) => ( - -); +}: OnboardingSyncEmailsSettingsCardProps) => { + const optionsWithCardMedia = ONBOARDING_SYNC_EMAILS_OPTIONS.map((option) => ({ + ...option, + cardMedia: ( + + ), + })); + + return ( + + ); +}; diff --git a/packages/twenty-front/src/modules/onboarding/components/onboardingSyncEmailsOptions.tsx b/packages/twenty-front/src/modules/onboarding/components/onboardingSyncEmailsOptions.tsx deleted file mode 100644 index 7414143bb..000000000 --- a/packages/twenty-front/src/modules/onboarding/components/onboardingSyncEmailsOptions.tsx +++ /dev/null @@ -1,36 +0,0 @@ -import { SettingsAccountsVisibilityIcon } from '@/settings/accounts/components/SettingsAccountsVisibilityIcon'; -import styled from '@emotion/styled'; -import { msg } from '@lingui/core/macro'; - -import { MessageChannelVisibility } from '~/generated/graphql'; - -const StyledCardMedia = styled(SettingsAccountsVisibilityIcon)` - width: ${({ theme }) => theme.spacing(10)}; -`; - -export const onboardingSyncEmailsOptions = [ - { - title: msg`Everything`, - description: msg`Your emails and events content will be shared with your team.`, - value: MessageChannelVisibility.SHARE_EVERYTHING, - cardMedia: ( - - ), - }, - { - title: msg`Subject and metadata`, - description: msg`Your email subjects and meeting titles will be shared with your team.`, - value: MessageChannelVisibility.SUBJECT, - cardMedia: ( - - ), - }, - { - title: msg`Metadata`, - description: msg`Only the timestamp & participants will be shared with your team.`, - value: MessageChannelVisibility.METADATA, - cardMedia: ( - - ), - }, -]; diff --git a/packages/twenty-front/src/modules/onboarding/constants/OnboardingSyncEmailsOptions.ts b/packages/twenty-front/src/modules/onboarding/constants/OnboardingSyncEmailsOptions.ts new file mode 100644 index 000000000..3300c3cef --- /dev/null +++ b/packages/twenty-front/src/modules/onboarding/constants/OnboardingSyncEmailsOptions.ts @@ -0,0 +1,48 @@ +import { msg } from '@lingui/core/macro'; + +import { MessageChannelVisibility } from '~/generated/graphql'; + +type OnboardingEmailVisibilityProps = { + metadata: 'active' | 'inactive'; + subject: 'active' | 'inactive'; + body: 'active' | 'inactive'; +}; + +const everythingProps: OnboardingEmailVisibilityProps = { + metadata: 'active', + subject: 'active', + body: 'active', +}; + +const subjectMetadataProps: OnboardingEmailVisibilityProps = { + metadata: 'active', + subject: 'active', + body: 'inactive', +}; + +const metadataOnlyProps: OnboardingEmailVisibilityProps = { + metadata: 'active', + subject: 'inactive', + body: 'inactive', +}; + +export const ONBOARDING_SYNC_EMAILS_OPTIONS = [ + { + title: msg`Everything`, + description: msg`Your emails and events content will be shared with your team.`, + value: MessageChannelVisibility.SHARE_EVERYTHING, + cardMediaProps: everythingProps, + }, + { + title: msg`Subject and metadata`, + description: msg`Your email subjects and meeting titles will be shared with your team.`, + value: MessageChannelVisibility.SUBJECT, + cardMediaProps: subjectMetadataProps, + }, + { + title: msg`Metadata`, + description: msg`Only the timestamp & participants will be shared with your team.`, + value: MessageChannelVisibility.METADATA, + cardMediaProps: metadataOnlyProps, + }, +]; diff --git a/packages/twenty-server/src/engine/workspace-manager/dev-seeder/data/constants/message-channel-data-seeds.constant.ts b/packages/twenty-server/src/engine/workspace-manager/dev-seeder/data/constants/message-channel-data-seeds.constant.ts index 799cee8ef..4f0ca4195 100644 --- a/packages/twenty-server/src/engine/workspace-manager/dev-seeder/data/constants/message-channel-data-seeds.constant.ts +++ b/packages/twenty-server/src/engine/workspace-manager/dev-seeder/data/constants/message-channel-data-seeds.constant.ts @@ -57,7 +57,7 @@ export const MESSAGE_CHANNEL_DATA_SEEDS: MessageChannelDataSeed[] = [ type: 'email', connectedAccountId: CONNECTED_ACCOUNT_DATA_SEED_IDS.TIM, handle: 'tim@apple.dev', - isSyncEnabled: false, + isSyncEnabled: true, visibility: MessageChannelVisibility.SHARE_EVERYTHING, syncStage: MessageChannelSyncStage.FULL_MESSAGE_LIST_FETCH_PENDING, }, @@ -70,7 +70,7 @@ export const MESSAGE_CHANNEL_DATA_SEEDS: MessageChannelDataSeed[] = [ type: 'email', connectedAccountId: CONNECTED_ACCOUNT_DATA_SEED_IDS.JONY, handle: 'jony.ive@apple.dev', - isSyncEnabled: false, + isSyncEnabled: true, visibility: MessageChannelVisibility.SHARE_EVERYTHING, syncStage: MessageChannelSyncStage.FULL_MESSAGE_LIST_FETCH_PENDING, }, @@ -83,7 +83,7 @@ export const MESSAGE_CHANNEL_DATA_SEEDS: MessageChannelDataSeed[] = [ type: 'email', connectedAccountId: CONNECTED_ACCOUNT_DATA_SEED_IDS.PHIL, handle: 'phil.schiler@apple.dev', - isSyncEnabled: false, + isSyncEnabled: true, visibility: MessageChannelVisibility.SHARE_EVERYTHING, syncStage: MessageChannelSyncStage.FULL_MESSAGE_LIST_FETCH_PENDING, }, @@ -96,7 +96,7 @@ export const MESSAGE_CHANNEL_DATA_SEEDS: MessageChannelDataSeed[] = [ type: 'email', connectedAccountId: CONNECTED_ACCOUNT_DATA_SEED_IDS.TIM, // Use TIM's connected account for shared inbox handle: 'support@apple.dev', - isSyncEnabled: false, + isSyncEnabled: true, visibility: MessageChannelVisibility.SHARE_EVERYTHING, syncStage: MessageChannelSyncStage.FULL_MESSAGE_LIST_FETCH_PENDING, }, @@ -109,7 +109,7 @@ export const MESSAGE_CHANNEL_DATA_SEEDS: MessageChannelDataSeed[] = [ type: 'email', connectedAccountId: CONNECTED_ACCOUNT_DATA_SEED_IDS.TIM, // Use TIM's connected account for shared inbox handle: 'sales@apple.dev', - isSyncEnabled: false, + isSyncEnabled: true, visibility: MessageChannelVisibility.SHARE_EVERYTHING, syncStage: MessageChannelSyncStage.FULL_MESSAGE_LIST_FETCH_PENDING, },