From 3d0dc645169fe9fef2099a5044443905f6a91bae Mon Sep 17 00:00:00 2001 From: doouding Date: Mon, 26 May 2025 05:03:09 +0000 Subject: [PATCH] fix: bookmark link can be click only when selected (#12450) Fixes [BS-3390](https://linear.app/affine-design/issue/BS-3390/) --- .../blocks/bookmark/src/bookmark-edgeless-block.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/blocksuite/affine/blocks/bookmark/src/bookmark-edgeless-block.ts b/blocksuite/affine/blocks/bookmark/src/bookmark-edgeless-block.ts index 7f64fd34b4..eb696c2430 100644 --- a/blocksuite/affine/blocks/bookmark/src/bookmark-edgeless-block.ts +++ b/blocksuite/affine/blocks/bookmark/src/bookmark-edgeless-block.ts @@ -29,6 +29,15 @@ export class BookmarkEdgelessBlockComponent extends toGfxBlockComponent( }; } + override connectedCallback(): void { + super.connectedCallback(); + this.disposables.add( + this.gfx.selection.slots.updated.subscribe(() => { + this.requestUpdate(); + }) + ); + } + override renderGfxBlock() { const style = this.model.props.style$.value; const width = EMBED_CARD_WIDTH[style]; @@ -36,12 +45,14 @@ export class BookmarkEdgelessBlockComponent extends toGfxBlockComponent( const bound = this.model.elementBound; const scaleX = bound.w / width; const scaleY = bound.h / height; + const isSelected = this.gfx.selection.has(this.model.id); this.containerStyleMap = styleMap({ width: `100%`, height: `100%`, transform: `scale(${scaleX}, ${scaleY})`, transformOrigin: '0 0', + pointerEvents: isSelected ? 'auto' : 'none', }); return this.renderPageContent();