From 37747369bc1d6ec5f8becfd5fc6d4b8d75c9e8db Mon Sep 17 00:00:00 2001 From: Mirone Date: Thu, 26 Dec 2024 19:06:06 +0800 Subject: [PATCH] fix(editor): missing edgeless crud piece (#9347) --- .../src/common/insert-embed-card.ts | 21 +++++++++++-------- .../embed-edgeless-linked-doc-block.ts | 12 +++++------ .../embed-edgeless-synced-doc-block.ts | 12 +++++------ 3 files changed, 24 insertions(+), 21 deletions(-) diff --git a/blocksuite/affine/block-embed/src/common/insert-embed-card.ts b/blocksuite/affine/block-embed/src/common/insert-embed-card.ts index ba887f9fc..6dfcf2f93 100644 --- a/blocksuite/affine/block-embed/src/common/insert-embed-card.ts +++ b/blocksuite/affine/block-embed/src/common/insert-embed-card.ts @@ -1,10 +1,14 @@ -import { SurfaceBlockComponent } from '@blocksuite/affine-block-surface'; +import { + EdgelessCRUDIdentifier, + SurfaceBlockComponent, +} from '@blocksuite/affine-block-surface'; import type { EmbedCardStyle } from '@blocksuite/affine-model'; import { EMBED_CARD_HEIGHT, EMBED_CARD_WIDTH, } from '@blocksuite/affine-shared/consts'; import type { BlockStdScope } from '@blocksuite/block-std'; +import { GfxControllerIdentifier } from '@blocksuite/block-std/gfx'; import { Bound, Vec } from '@blocksuite/global/utils'; interface EmbedCardProperties { @@ -46,14 +50,14 @@ export function insertEmbedCard( const edgelessRoot = std.view.getBlock(rootId); if (!edgelessRoot) return; - // @ts-expect-error TODO: fix after edgeless refactor - edgelessRoot.service.viewport.smoothZoom(1); - // @ts-expect-error TODO: fix after edgeless refactor - const surfaceBlock = edgelessRoot.surface; + const gfx = std.get(GfxControllerIdentifier); + const crud = std.get(EdgelessCRUDIdentifier); + + gfx.viewport.smoothZoom(1); + const surfaceBlock = gfx.surfaceComponent; if (!(surfaceBlock instanceof SurfaceBlockComponent)) return; const center = Vec.toVec(surfaceBlock.renderer.viewport.center); - // @ts-expect-error TODO: fix after edgeless refactor - const cardId = edgelessRoot.service.addBlock( + const cardId = crud.addBlock( flavour, { ...props, @@ -67,8 +71,7 @@ export function insertEmbedCard( surfaceBlock.model ); - // @ts-expect-error TODO: fix after edgeless refactor - edgelessRoot.service.selection.set({ + gfx.selection.set({ elements: [cardId], editing: false, }); diff --git a/blocksuite/affine/block-embed/src/embed-linked-doc-block/embed-edgeless-linked-doc-block.ts b/blocksuite/affine/block-embed/src/embed-linked-doc-block/embed-edgeless-linked-doc-block.ts index 7b9d42e21..b07a78c90 100644 --- a/blocksuite/affine/block-embed/src/embed-linked-doc-block/embed-edgeless-linked-doc-block.ts +++ b/blocksuite/affine/block-embed/src/embed-linked-doc-block/embed-edgeless-linked-doc-block.ts @@ -1,3 +1,4 @@ +import { EdgelessCRUDIdentifier } from '@blocksuite/affine-block-surface'; import { EMBED_CARD_HEIGHT, EMBED_CARD_WIDTH, @@ -33,16 +34,16 @@ export class EmbedEdgelessLinkedDocBlockComponent extends toEdgelessEmbedBlock( return; } - // @ts-expect-error TODO: fix after edgeless refactor - const newId = edgelessService.addBlock( + const { addBlock } = this.std.get(EdgelessCRUDIdentifier); + const surface = this.gfx.surface ?? undefined; + const newId = addBlock( 'affine:embed-synced-doc', { xywh: bound.serialize(), caption, ...cloneReferenceInfoWithoutAliases(this.referenceInfo$.peek()), }, - // @ts-expect-error TODO: fix after edgeless refactor - edgelessService.surface + surface ); this.std.command.exec('reassociateConnectors', { @@ -50,8 +51,7 @@ export class EmbedEdgelessLinkedDocBlockComponent extends toEdgelessEmbedBlock( newId, }); - // @ts-expect-error TODO: fix after edgeless refactor - edgelessService.selection.set({ + this.gfx.selection.set({ editing: false, elements: [newId], }); diff --git a/blocksuite/affine/block-embed/src/embed-synced-doc-block/embed-edgeless-synced-doc-block.ts b/blocksuite/affine/block-embed/src/embed-synced-doc-block/embed-edgeless-synced-doc-block.ts index 5bc9b5423..9e8ccd20a 100644 --- a/blocksuite/affine/block-embed/src/embed-synced-doc-block/embed-edgeless-synced-doc-block.ts +++ b/blocksuite/affine/block-embed/src/embed-synced-doc-block/embed-edgeless-synced-doc-block.ts @@ -1,3 +1,4 @@ +import { EdgelessCRUDIdentifier } from '@blocksuite/affine-block-surface'; import type { AliasInfo } from '@blocksuite/affine-model'; import { EMBED_CARD_HEIGHT, @@ -127,8 +128,9 @@ export class EmbedEdgelessSyncedDocBlockComponent extends toEdgelessEmbedBlock( return; } - // @ts-expect-error TODO: fix after edgeless refactor - const newId = edgelessService.addBlock( + const { addBlock } = this.std.get(EdgelessCRUDIdentifier); + const surface = this.gfx.surface ?? undefined; + const newId = addBlock( 'affine:embed-linked-doc', { xywh: bound.serialize(), @@ -137,8 +139,7 @@ export class EmbedEdgelessSyncedDocBlockComponent extends toEdgelessEmbedBlock( ...this.referenceInfo, ...aliasInfo, }, - // @ts-expect-error TODO: fix after edgeless refactor - edgelessService.surface + surface ); this.std.command.exec('reassociateConnectors', { @@ -146,8 +147,7 @@ export class EmbedEdgelessSyncedDocBlockComponent extends toEdgelessEmbedBlock( newId, }); - // @ts-expect-error TODO: fix after edgeless refactor - edgelessService.selection.set({ + this.gfx.selection.set({ editing: false, elements: [newId], });