From 39abd1bbb8a496739f73bb87ab535c6fa7032024 Mon Sep 17 00:00:00 2001 From: L-Sun Date: Wed, 9 Jul 2025 19:05:03 +0800 Subject: [PATCH] fix(editor): can not create surface block comment (#13115) ## Summary by CodeRabbit * **Bug Fixes** * Improved comment handling to ensure elements from all selections are considered, regardless of surface ID. * Enhanced preview generation for comments to include all relevant selections without surface-based filtering. --- .../comment-service/block-element-comment-manager.ts | 3 +-- .../blocksuite/view-extensions/comment/comment-provider.ts | 5 +---- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/blocksuite/affine/shared/src/services/comment-service/block-element-comment-manager.ts b/blocksuite/affine/shared/src/services/comment-service/block-element-comment-manager.ts index 5a1623644..88e268f6c 100644 --- a/blocksuite/affine/shared/src/services/comment-service/block-element-comment-manager.ts +++ b/blocksuite/affine/shared/src/services/comment-service/block-element-comment-manager.ts @@ -123,8 +123,7 @@ export class BlockElementCommentManager extends LifeCycleWatcher { const gfx = this.std.get(GfxControllerIdentifier); const elementsFromSurfaceSelection = selections .filter(s => s instanceof SurfaceSelection) - .flatMap(({ blockId, elements }) => { - if (blockId !== gfx.surface?.id) return []; + .flatMap(({ elements }) => { return elements .map(id => gfx.getElementById(id)) .filter(m => m !== null); diff --git a/packages/frontend/core/src/blocksuite/view-extensions/comment/comment-provider.ts b/packages/frontend/core/src/blocksuite/view-extensions/comment/comment-provider.ts index 5d6a07f10..234c93f1c 100644 --- a/packages/frontend/core/src/blocksuite/view-extensions/comment/comment-provider.ts +++ b/packages/frontend/core/src/blocksuite/view-extensions/comment/comment-provider.ts @@ -50,10 +50,7 @@ function getPreviewFromSelections( } else if (selection instanceof ImageSelection) { // Return <"Image"> for ImageSelection previews.push(''); - } else if ( - selection instanceof SurfaceSelection && - gfx.surface?.id === selection.blockId - ) { + } else if (selection instanceof SurfaceSelection) { selection.elements.forEach(elementId => { const model = gfx.getElementById(elementId); if (model instanceof GfxPrimitiveElementModel) {