diff --git a/blocksuite/affine/blocks/block-root/src/common-specs/index.ts b/blocksuite/affine/blocks/block-root/src/common-specs/index.ts index 4532b9de0..e88099088 100644 --- a/blocksuite/affine/blocks/block-root/src/common-specs/index.ts +++ b/blocksuite/affine/blocks/block-root/src/common-specs/index.ts @@ -1,4 +1,9 @@ import { FileDropExtension } from '@blocksuite/affine-components/drop-indicator'; +import { ConnectorElementView } from '@blocksuite/affine-gfx-connector'; +import { GroupElementView } from '@blocksuite/affine-gfx-group'; +import { MindMapView } from '@blocksuite/affine-gfx-mindmap'; +import { ShapeElementView } from '@blocksuite/affine-gfx-shape'; +import { TextElementView } from '@blocksuite/affine-gfx-text'; import { NoteBlockSchema } from '@blocksuite/affine-model'; import { DNDAPIExtension, @@ -27,6 +32,19 @@ import { viewportOverlayWidget, } from './widgets'; +/** + * Why do we add these extensions into CommonSpecs? + * Because in some cases we need to create edgeless elements in page mode. + * And these view may contain some logic when elements initialize. + */ +const EdgelessElementViews = [ + ConnectorElementView, + MindMapView, + GroupElementView, + TextElementView, + ShapeElementView, +]; + export const CommonSpecs: ExtensionType[] = [ FlavourExtension('affine:page'), DocModeService, @@ -38,6 +56,7 @@ export const CommonSpecs: ExtensionType[] = [ ToolbarRegistryExtension, ...RootBlockAdapterExtensions, ...clipboardConfigs, + ...EdgelessElementViews, modalWidget, innerModalWidget, diff --git a/blocksuite/affine/blocks/block-root/src/edgeless/edgeless-root-spec.ts b/blocksuite/affine/blocks/block-root/src/edgeless/edgeless-root-spec.ts index 11a5aba2e..770f5e1af 100644 --- a/blocksuite/affine/blocks/block-root/src/edgeless/edgeless-root-spec.ts +++ b/blocksuite/affine/blocks/block-root/src/edgeless/edgeless-root-spec.ts @@ -1,8 +1,3 @@ -import { ConnectorElementView } from '@blocksuite/affine-gfx-connector'; -import { GroupElementView } from '@blocksuite/affine-gfx-group'; -import { MindMapView } from '@blocksuite/affine-gfx-mindmap'; -import { ShapeElementView } from '@blocksuite/affine-gfx-shape'; -import { TextElementView } from '@blocksuite/affine-gfx-text'; import { ViewportElementExtension } from '@blocksuite/affine-shared/services'; import { autoConnectWidget } from '@blocksuite/affine-widget-edgeless-auto-connect'; import { edgelessToolbarWidget } from '@blocksuite/affine-widget-edgeless-toolbar'; @@ -90,20 +85,11 @@ const EdgelessClipboardConfigs: ExtensionType[] = [ EdgelessClipboardEmbedSyncedDocConfig, ]; -export const gfxElementViews = [ - ConnectorElementView, - MindMapView, - GroupElementView, - TextElementView, - ShapeElementView, -]; - const EdgelessCommonExtension: ExtensionType[] = [ CommonSpecs, ToolController, EdgelessRootService, ViewportElementExtension('.affine-edgeless-viewport'), - ...gfxElementViews, ...quickTools, ...seniorTools, ...EdgelessClipboardConfigs,