From ef4a7730d1460f1e854d8be15c81f06835479bf8 Mon Sep 17 00:00:00 2001 From: fundon Date: Tue, 10 Dec 2024 04:47:40 +0000 Subject: [PATCH] fix(blocks): should show original doc title when hovering title button (#8925) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes: [BS-2065](https://linear.app/affine-design/issue/BS-2065/这里-hovertips-应该显示-linked-doc-的原始完整标题) --- .../nodes/reference-node/reference-popup.ts | 2 +- .../change-embed-card-button.ts | 16 +++++++++++----- .../embed-card-toolbar/embed-card-toolbar.ts | 18 +++++++++++++----- 3 files changed, 25 insertions(+), 11 deletions(-) diff --git a/packages/affine/components/src/rich-text/inline/presets/nodes/reference-node/reference-popup.ts b/packages/affine/components/src/rich-text/inline/presets/nodes/reference-node/reference-popup.ts index e2dabbe0b206..734ff7a4c53b 100644 --- a/packages/affine/components/src/rich-text/inline/presets/nodes/reference-node/reference-popup.ts +++ b/packages/affine/components/src/rich-text/inline/presets/nodes/reference-node/reference-popup.ts @@ -398,7 +398,7 @@ export class ReferencePopup extends WithDisposable(LitElement) { aria-label="Doc title" .hover=${false} .labelHeight=${'20px'} - .tooltip=${'Original linked doc title'} + .tooltip=${this.docTitle} @click=${this._openDoc} > ${this.docTitle} diff --git a/packages/blocks/src/root-block/widgets/element-toolbar/change-embed-card-button.ts b/packages/blocks/src/root-block/widgets/element-toolbar/change-embed-card-button.ts index fb92d7ab4bcd..332d0631f3f3 100644 --- a/packages/blocks/src/root-block/widgets/element-toolbar/change-embed-card-button.ts +++ b/packages/blocks/src/root-block/widgets/element-toolbar/change-embed-card-button.ts @@ -505,6 +505,15 @@ export class EdgelessChangeEmbedCardButton extends WithDisposable(LitElement) { return undefined; } + get _originalDocTitle() { + const model = this.model; + const doc = isInternalEmbedModel(model) + ? this.std.collection.getDoc(model.pageId) + : null; + + return doc?.meta?.title || 'Untitled'; + } + private get _viewType(): 'inline' | 'embed' | 'card' { if (this._isCardView) { return 'card'; @@ -706,13 +715,10 @@ export class EdgelessChangeEmbedCardButton extends WithDisposable(LitElement) { aria-label="Doc title" .hover=${false} .labelHeight=${'20px'} - .tooltip=${'Original linked doc title'} + .tooltip=${this._originalDocTitle} @click=${this._open} > - ${this.std.collection.getDoc(model.pageId)?.meta?.title || - 'Untitled'} + ${this._originalDocTitle} ` : nothing, diff --git a/packages/blocks/src/root-block/widgets/embed-card-toolbar/embed-card-toolbar.ts b/packages/blocks/src/root-block/widgets/embed-card-toolbar/embed-card-toolbar.ts index d3f1764e1a59..db2719d680b1 100644 --- a/packages/blocks/src/root-block/widgets/embed-card-toolbar/embed-card-toolbar.ts +++ b/packages/blocks/src/root-block/widgets/embed-card-toolbar/embed-card-toolbar.ts @@ -276,6 +276,17 @@ export class EmbedCardToolbar extends WidgetComponent< return undefined; } + get _originalDocTitle() { + const model = this.focusModel; + if (!model) return undefined; + + const doc = isInternalEmbedModel(model) + ? this.std.collection.getDoc(model.pageId) + : null; + + return doc?.meta?.title || 'Untitled'; + } + private get _selection() { return this.host.selection; } @@ -758,13 +769,10 @@ export class EmbedCardToolbar extends WidgetComponent< aria-label="Doc title" .hover=${false} .labelHeight=${'20px'} - .tooltip=${'Original linked doc title'} + .tooltip=${this._originalDocTitle} @click=${this.focusBlock?.open} > - ${this.std.collection.getDoc(model.pageId)?.meta?.title || - 'Untitled'} + ${this._originalDocTitle} ` : nothing,