diff --git a/packages/common/infra/src/modules/feature-flag/constant.ts b/packages/common/infra/src/modules/feature-flag/constant.ts index 2d23e0cdf..8ccb6c490 100644 --- a/packages/common/infra/src/modules/feature-flag/constant.ts +++ b/packages/common/infra/src/modules/feature-flag/constant.ts @@ -78,8 +78,10 @@ export const AFFINE_FLAGS = { category: 'affine', displayName: 'Split View', description: - 'The Split View feature in AFFiNE allows users to divide their workspace into multiple sections, enabling simultaneous viewing and editing of different documents.The Split View feature in AFFiNE allows users to divide their workspace into multiple sections, enabling simultaneous viewing and editing of different documents.', + 'The Split View feature enables you to divide your tab into multiple sections for simultaneous viewing and editing of different documents.', feedbackType: 'discord', + feedbackLink: + 'https://discord.com/channels/959027316334407691/1280009690004324405', configurable: isDesktopEnvironment, defaultState: isCanaryBuild, }, @@ -88,6 +90,9 @@ export const AFFINE_FLAGS = { displayName: 'Emoji Folder Icon', description: 'Once enabled, you can use an emoji as the folder icon. When the first character of the folder name is an emoji, it will be extracted and used as its icon.', + feedbackType: 'discord', + feedbackLink: + 'https://discord.com/channels/959027316334407691/1280014319865696351/1280014319865696351', configurable: true, defaultState: false, }, diff --git a/packages/common/infra/src/modules/feature-flag/types.ts b/packages/common/infra/src/modules/feature-flag/types.ts index 897df817e..c521df716 100644 --- a/packages/common/infra/src/modules/feature-flag/types.ts +++ b/packages/common/infra/src/modules/feature-flag/types.ts @@ -6,6 +6,7 @@ export type FlagInfo = { configurable?: boolean; defaultState?: boolean; // default to open and not controlled by user feedbackType?: FeedbackType; + feedbackLink?: string; } & ( | { category: 'affine'; diff --git a/packages/frontend/core/src/components/affine/setting-modal/general-setting/experimental-features/index.tsx b/packages/frontend/core/src/components/affine/setting-modal/general-setting/experimental-features/index.tsx index df0d983c3..d92495737 100644 --- a/packages/frontend/core/src/components/affine/setting-modal/general-setting/experimental-features/index.tsx +++ b/packages/frontend/core/src/components/affine/setting-modal/general-setting/experimental-features/index.tsx @@ -114,7 +114,11 @@ const ExperimentalFeaturesItem = ({ flag }: { flag: Flag }) => { }, [flag] ); - const link = flag.feedbackType ? feedbackLink[flag.feedbackType] : undefined; + const link = flag.feedbackType + ? flag.feedbackLink + ? flag.feedbackLink + : feedbackLink[flag.feedbackType] + : undefined; if (flag.configurable === false) { return null; diff --git a/packages/frontend/i18n/src/resources/en.json b/packages/frontend/i18n/src/resources/en.json index 26c5d7579..c0a0ecde6 100644 --- a/packages/frontend/i18n/src/resources/en.json +++ b/packages/frontend/i18n/src/resources/en.json @@ -1340,7 +1340,7 @@ "com.affine.settings.workspace.experimental-features": "Experimental features", "com.affine.settings.workspace.experimental-features.get-started": "Get started", "com.affine.settings.workspace.experimental-features.header.plugins": "Experimental features", - "com.affine.settings.workspace.experimental-features.header.subtitle": "You can customize your workspace here.", + "com.affine.settings.workspace.experimental-features.header.subtitle": "Some features available for early access", "com.affine.settings.workspace.experimental-features.prompt-disclaimer": "I am aware of the risks, and I am willing to continue to use it.", "com.affine.settings.workspace.experimental-features.prompt-header": "Do you want to use the plugin system that is in an experimental stage?", "com.affine.settings.workspace.experimental-features.prompt-warning": "You are about to enable an experimental feature. This feature is still in development and may contain errors or behave unpredictably. Please proceed with caution and at your own risk.",