From dd1cf140692694b3748c23a17e5203c2d72a6aa6 Mon Sep 17 00:00:00 2001 From: Saul-Mirone Date: Tue, 8 Apr 2025 16:35:24 +0000 Subject: [PATCH] refactor(editor): cleanup duplicated code (#11548) --- .../root/src/edgeless/configs/toolbar/more.ts | 2 +- .../root/src/edgeless/edgeless-builtin-spec.ts | 2 +- .../blocks/root/src/edgeless/gfx-tool/index.ts | 1 - .../root/src/edgeless/gfx-tool/template-tool.ts | 11 ----------- .../blocks/root/src/edgeless/utils/connector.ts | 16 ++++++++++------ .../root/src/widgets/keyboard-toolbar/index.ts | 6 +----- 6 files changed, 13 insertions(+), 25 deletions(-) delete mode 100644 blocksuite/affine/blocks/root/src/edgeless/gfx-tool/template-tool.ts diff --git a/blocksuite/affine/blocks/root/src/edgeless/configs/toolbar/more.ts b/blocksuite/affine/blocks/root/src/edgeless/configs/toolbar/more.ts index 4d65018610..be108b32e7 100644 --- a/blocksuite/affine/blocks/root/src/edgeless/configs/toolbar/more.ts +++ b/blocksuite/affine/blocks/root/src/edgeless/configs/toolbar/more.ts @@ -258,7 +258,7 @@ export const moreActions = [ other: 'new doc', }); - moveConnectors(model.id, cardId, edgeless.service); + moveConnectors(model.id, cardId, ctx.std); // Deletes selected note ctx.store.transact(() => { diff --git a/blocksuite/affine/blocks/root/src/edgeless/edgeless-builtin-spec.ts b/blocksuite/affine/blocks/root/src/edgeless/edgeless-builtin-spec.ts index 90b8ed768f..30fcdd5d25 100644 --- a/blocksuite/affine/blocks/root/src/edgeless/edgeless-builtin-spec.ts +++ b/blocksuite/affine/blocks/root/src/edgeless/edgeless-builtin-spec.ts @@ -19,6 +19,7 @@ import { } from '@blocksuite/affine-gfx-mindmap'; import { NoteTool } from '@blocksuite/affine-gfx-note'; import { ShapeTool } from '@blocksuite/affine-gfx-shape'; +import { TemplateTool } from '@blocksuite/affine-gfx-template'; import { TextTool } from '@blocksuite/affine-gfx-text'; import { ElementTransformManager } from '@blocksuite/std/gfx'; import type { ExtensionType } from '@blocksuite/store'; @@ -30,7 +31,6 @@ import { SnapExtension } from './element-transform/snap-manager.js'; import { DefaultTool } from './gfx-tool/default-tool.js'; import { EmptyTool } from './gfx-tool/empty-tool.js'; import { PanTool } from './gfx-tool/pan-tool.js'; -import { TemplateTool } from './gfx-tool/template-tool.js'; import { EditPropsMiddlewareBuilder } from './middlewares/base.js'; import { SnapOverlay } from './utils/snap-manager.js'; diff --git a/blocksuite/affine/blocks/root/src/edgeless/gfx-tool/index.ts b/blocksuite/affine/blocks/root/src/edgeless/gfx-tool/index.ts index 54c30e114a..71f88d98cb 100644 --- a/blocksuite/affine/blocks/root/src/edgeless/gfx-tool/index.ts +++ b/blocksuite/affine/blocks/root/src/edgeless/gfx-tool/index.ts @@ -1,4 +1,3 @@ export { DefaultTool } from './default-tool.js'; export { EmptyTool } from './empty-tool.js'; export { PanTool, type PanToolOption } from './pan-tool.js'; -export { TemplateTool } from './template-tool.js'; diff --git a/blocksuite/affine/blocks/root/src/edgeless/gfx-tool/template-tool.ts b/blocksuite/affine/blocks/root/src/edgeless/gfx-tool/template-tool.ts deleted file mode 100644 index fa323dee55..0000000000 --- a/blocksuite/affine/blocks/root/src/edgeless/gfx-tool/template-tool.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { BaseTool } from '@blocksuite/std/gfx'; - -export class TemplateTool extends BaseTool { - static override toolName: string = 'template'; -} - -declare module '@blocksuite/std/gfx' { - interface GfxToolsMap { - template: TemplateTool; - } -} diff --git a/blocksuite/affine/blocks/root/src/edgeless/utils/connector.ts b/blocksuite/affine/blocks/root/src/edgeless/utils/connector.ts index a331493265..86807ab17b 100644 --- a/blocksuite/affine/blocks/root/src/edgeless/utils/connector.ts +++ b/blocksuite/affine/blocks/root/src/edgeless/utils/connector.ts @@ -1,6 +1,8 @@ -import { EdgelessCRUDIdentifier } from '@blocksuite/affine-block-surface'; - -import type { EdgelessRootService } from '../edgeless-root-service.js'; +import { + EdgelessCRUDIdentifier, + getSurfaceBlock, +} from '@blocksuite/affine-block-surface'; +import type { BlockStdScope } from '@blocksuite/std'; /** * move connectors from origin to target @@ -11,10 +13,12 @@ import type { EdgelessRootService } from '../edgeless-root-service.js'; export function moveConnectors( originId: string, targetId: string, - service: EdgelessRootService + std: BlockStdScope ) { - const connectors = service.surface.getConnectors(originId); - const crud = service.std.get(EdgelessCRUDIdentifier); + const model = getSurfaceBlock(std.store); + if (!model) return; + const connectors = model.getConnectors(originId); + const crud = std.get(EdgelessCRUDIdentifier); connectors.forEach(connector => { if (connector.source.id === originId) { crud.updateElement(connector.id, { diff --git a/blocksuite/affine/blocks/root/src/widgets/keyboard-toolbar/index.ts b/blocksuite/affine/blocks/root/src/widgets/keyboard-toolbar/index.ts index bab0abbfc2..47faeb8c1e 100644 --- a/blocksuite/affine/blocks/root/src/widgets/keyboard-toolbar/index.ts +++ b/blocksuite/affine/blocks/root/src/widgets/keyboard-toolbar/index.ts @@ -10,7 +10,6 @@ import { WidgetComponent } from '@blocksuite/std'; import { effect, signal } from '@preact/signals-core'; import { html, nothing } from 'lit'; -import type { PageRootBlockComponent } from '../../page/page-root-block.js'; import { RootBlockConfigExtension } from '../../root-config.js'; import { defaultKeyboardToolbarConfig } from './config.js'; @@ -18,10 +17,7 @@ export * from './config.js'; export const AFFINE_KEYBOARD_TOOLBAR_WIDGET = 'affine-keyboard-toolbar-widget'; -export class AffineKeyboardToolbarWidget extends WidgetComponent< - RootBlockModel, - PageRootBlockComponent -> { +export class AffineKeyboardToolbarWidget extends WidgetComponent { private readonly _close = (blur: boolean) => { if (blur) { if (document.activeElement === this._docTitle?.inlineEditorContainer) {