diff --git a/packages/frontend/core/src/components/blocksuite/block-suite-editor/lit-adaper.tsx b/packages/frontend/core/src/components/blocksuite/block-suite-editor/lit-adaper.tsx index e4abc73a81d2a..0da7345fdfd93 100644 --- a/packages/frontend/core/src/components/blocksuite/block-suite-editor/lit-adaper.tsx +++ b/packages/frontend/core/src/components/blocksuite/block-suite-editor/lit-adaper.tsx @@ -11,6 +11,7 @@ import type { } from '@affine/core/modules/doc-info/types'; import { EditorService } from '@affine/core/modules/editor'; import { EditorSettingService } from '@affine/core/modules/editor-setting'; +import { FeatureFlagService } from '@affine/core/modules/feature-flag'; import { JournalService } from '@affine/core/modules/journal'; import { toURLSearchParams } from '@affine/core/modules/navigation'; import { PeekViewService } from '@affine/core/modules/peek-view/services/peek-view'; @@ -97,12 +98,14 @@ const usePatchSpecs = (shared: boolean, mode: DocMode) => { docsService, editorService, workspaceService, + featureFlagService, } = useServices({ PeekViewService, DocService, DocsService, WorkspaceService, EditorService, + FeatureFlagService, }); const framework = useFramework(); const referenceRenderer: ReferenceReactRenderer = useMemo(() => { @@ -149,7 +152,11 @@ const usePatchSpecs = (shared: boolean, mode: DocMode) => { let patched = specs.concat( patchReferenceRenderer(reactToLit, referenceRenderer) ); - patched = patched.concat(patchForAttachmentEmbedViews(reactToLit)); + + if (featureFlagService.flags.enable_pdf_embed_preview.value) { + patched = patched.concat(patchForAttachmentEmbedViews(reactToLit)); + } + patched = patched.concat(patchNotificationService(confirmModal)); patched = patched.concat(patchPeekViewService(peekViewService)); patched = patched.concat(patchEdgelessClipboard()); @@ -178,6 +185,7 @@ const usePatchSpecs = (shared: boolean, mode: DocMode) => { referenceRenderer, shared, specs, + featureFlagService, ]); return [ diff --git a/packages/frontend/core/src/modules/feature-flag/constant.ts b/packages/frontend/core/src/modules/feature-flag/constant.ts index fda9046413cdc..b69ac31b128a5 100644 --- a/packages/frontend/core/src/modules/feature-flag/constant.ts +++ b/packages/frontend/core/src/modules/feature-flag/constant.ts @@ -234,7 +234,16 @@ export const AFFINE_FLAGS = { configurable: isMobile, defaultState: false, }, + enable_pdf_embed_preview: { + category: 'affine', + displayName: + 'com.affine.settings.workspace.experimental-features.enable-pdf-embed-preview.name', + description: + 'com.affine.settings.workspace.experimental-features.enable-pdf-embed-preview.description', + configurable: !isMobile, + defaultState: false, + }, } satisfies { [key in string]: FlagInfo }; -// eslint-disable-next-line no-redeclare +// oxlint-disable-next-line no-redeclare export type AFFINE_FLAGS = typeof AFFINE_FLAGS; diff --git a/packages/frontend/i18n/src/resources/en.json b/packages/frontend/i18n/src/resources/en.json index 27a4eb3d582e9..51d7aa9512916 100644 --- a/packages/frontend/i18n/src/resources/en.json +++ b/packages/frontend/i18n/src/resources/en.json @@ -1324,6 +1324,8 @@ "com.affine.settings.workspace.experimental-features.enable-multiple-cloud-servers.description": "Once enabled, users can connect to selfhosted cloud servers.", "com.affine.settings.workspace.experimental-features.enable-mobile-edgeless-editing.name": "Enable Edgeless Editing", "com.affine.settings.workspace.experimental-features.enable-mobile-edgeless-editing.description": "Once enabled, users can edit edgeless canvas.", + "com.affine.settings.workspace.experimental-features.enable-pdf-embed-preview.name": "PDF embed preview", + "com.affine.settings.workspace.experimental-features.enable-pdf-embed-preview.description": "Once enabled, you can preview PDF in embed view.", "com.affine.settings.workspace.not-owner": "Only an owner can edit the workspace avatar and name. Changes will be shown for everyone.", "com.affine.settings.workspace.preferences": "Preference", "com.affine.settings.workspace.billing": "Billing",