From fe2fc892df3ccdc1692de65ee300715fe926c9d4 Mon Sep 17 00:00:00 2001 From: Saul-Mirone Date: Tue, 13 May 2025 12:57:55 +0000 Subject: [PATCH] refactor(editor): remove the legacy common view extension (#12255) ## Summary by CodeRabbit - **Refactor** - Updated configuration initialization throughout the app by replacing the previous base configuration method with a new one for improved consistency. - Removed an internal extension and adjusted related setup logic to streamline extension management. - Renamed and simplified configuration methods for better clarity and maintainability. --- .../bi-directional-link-panel.tsx | 2 +- .../block-suite-editor/lit-adaper.tsx | 2 +- .../src/blocksuite/manager/common-view.ts | 34 ------------------- .../src/blocksuite/manager/editor-view.tsx | 4 +++ .../src/blocksuite/manager/migrating-view.ts | 13 +++---- .../editor/edgeless/snapshot.tsx | 2 +- 6 files changed, 11 insertions(+), 46 deletions(-) delete mode 100644 packages/frontend/core/src/blocksuite/manager/common-view.ts diff --git a/packages/frontend/core/src/blocksuite/block-suite-editor/bi-directional-link-panel.tsx b/packages/frontend/core/src/blocksuite/block-suite-editor/bi-directional-link-panel.tsx index a7b9d86f73..ceabf52fa8 100644 --- a/packages/frontend/core/src/blocksuite/block-suite-editor/bi-directional-link-panel.tsx +++ b/packages/frontend/core/src/blocksuite/block-suite-editor/bi-directional-link-panel.tsx @@ -165,7 +165,7 @@ const usePreviewExtensions = () => { const extensions = useMemo(() => { const manager = getViewManager() .config.init() - .common(framework) + .foundation(framework) .ai(enableAI, framework) .theme(framework) .database(framework) diff --git a/packages/frontend/core/src/blocksuite/block-suite-editor/lit-adaper.tsx b/packages/frontend/core/src/blocksuite/block-suite-editor/lit-adaper.tsx index ec53966074..779276a3bb 100644 --- a/packages/frontend/core/src/blocksuite/block-suite-editor/lit-adaper.tsx +++ b/packages/frontend/core/src/blocksuite/block-suite-editor/lit-adaper.tsx @@ -80,7 +80,7 @@ const usePatchSpecs = (mode: DocMode) => { const patchedSpecs = useMemo(() => { const manager = getViewManager() .config.init() - .common(framework) + .foundation(framework) .ai(enableAI, framework) .theme(framework) .editorConfig(framework) diff --git a/packages/frontend/core/src/blocksuite/manager/common-view.ts b/packages/frontend/core/src/blocksuite/manager/common-view.ts deleted file mode 100644 index ed28ed76aa..0000000000 --- a/packages/frontend/core/src/blocksuite/manager/common-view.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { buildDocDisplayMetaExtension } from '@affine/core/blocksuite/extensions/display-meta'; -import { patchFileSizeLimitExtension } from '@affine/core/blocksuite/extensions/file-size-limit'; -import { - type ViewExtensionContext, - ViewExtensionProvider, -} from '@blocksuite/affine/ext-loader'; -import { FrameworkProvider } from '@toeverything/infra'; -import { z } from 'zod'; - -const optionsSchema = z.object({ - framework: z.instanceof(FrameworkProvider).optional(), -}); - -export class AffineCommonViewExtension extends ViewExtensionProvider< - z.infer -> { - override name = 'affine-view-extensions'; - - override schema = optionsSchema; - - override setup( - context: ViewExtensionContext, - options?: z.infer - ) { - super.setup(context, options); - const { framework } = options || {}; - if (framework) { - context.register(buildDocDisplayMetaExtension(framework)); - if (context.scope === 'edgeless' || context.scope === 'page') { - context.register(patchFileSizeLimitExtension(framework)); - } - } - } -} diff --git a/packages/frontend/core/src/blocksuite/manager/editor-view.tsx b/packages/frontend/core/src/blocksuite/manager/editor-view.tsx index 8be7fdc768..8a3c24ceb9 100644 --- a/packages/frontend/core/src/blocksuite/manager/editor-view.tsx +++ b/packages/frontend/core/src/blocksuite/manager/editor-view.tsx @@ -1,8 +1,10 @@ import type { ConfirmModalProps, ElementOrFactory } from '@affine/component'; import { patchForAudioEmbedView } from '@affine/core/blocksuite/extensions/audio/audio-view'; import { patchDatabaseBlockConfigService } from '@affine/core/blocksuite/extensions/database-block-config-service'; +import { buildDocDisplayMetaExtension } from '@affine/core/blocksuite/extensions/display-meta'; import { patchDocModeService } from '@affine/core/blocksuite/extensions/doc-mode-service'; import { patchDocUrlExtensions } from '@affine/core/blocksuite/extensions/doc-url'; +import { patchFileSizeLimitExtension } from '@affine/core/blocksuite/extensions/file-size-limit'; import { patchNotificationService } from '@affine/core/blocksuite/extensions/notification-service'; import { patchOpenDocExtension } from '@affine/core/blocksuite/extensions/open-doc'; import { patchQuickSearchService } from '@affine/core/blocksuite/extensions/quick-search-service'; @@ -111,6 +113,8 @@ export class AffineEditorViewExtension extends ViewExtensionProvider Configure; - common: (framework?: FrameworkProvider, enableAI?: boolean) => Configure; + foundation: (framework?: FrameworkProvider) => Configure; editorView: (options?: AffineEditorViewOptions) => Configure; theme: (framework?: FrameworkProvider) => Configure; editorConfig: (framework?: FrameworkProvider) => Configure; @@ -78,7 +77,6 @@ class ViewProvider { ...getInternalViewExtensions(), AffineThemeViewExtension, - AffineCommonViewExtension, AffineEditorViewExtension, AffineEditorConfigViewExtension, CodeBlockPreviewViewExtension, @@ -100,7 +98,7 @@ class ViewProvider { get config(): Configure { return { init: this._initDefaultConfig, - common: this._configureCommon, + foundation: this._configureFoundation, editorView: this._configureEditorView, theme: this._configureTheme, editorConfig: this._configureEditorConfig, @@ -121,7 +119,7 @@ class ViewProvider { private readonly _initDefaultConfig = () => { this.config - .common() + .foundation() .theme() .editorView() .editorConfig() @@ -140,7 +138,7 @@ class ViewProvider { return this.config; }; - private readonly _configureCommon = (framework?: FrameworkProvider) => { + private readonly _configureFoundation = (framework?: FrameworkProvider) => { const peekViewService = framework?.get(PeekViewService); this._manager.configure(FoundationViewExtension, { @@ -180,9 +178,6 @@ class ViewProvider { } satisfies BSPeekViewService), }); - this._manager.configure(AffineCommonViewExtension, { - framework, - }); return this.config; }; diff --git a/packages/frontend/core/src/desktop/dialogs/setting/general-setting/editor/edgeless/snapshot.tsx b/packages/frontend/core/src/desktop/dialogs/setting/general-setting/editor/edgeless/snapshot.tsx index fbff4ea53f..b98db0b513 100644 --- a/packages/frontend/core/src/desktop/dialogs/setting/general-setting/editor/edgeless/snapshot.tsx +++ b/packages/frontend/core/src/desktop/dialogs/setting/general-setting/editor/edgeless/snapshot.tsx @@ -58,7 +58,7 @@ export const EdgelessSnapshot = (props: Props) => { const extensions = useMemo(() => { const manager = getViewManager() .config.init() - .common(framework) + .foundation(framework) .theme(framework) .database(framework) .linkedDoc(framework).value;