mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-09-22 03:33:06 +08:00
fix(editor): ref on click slots should not be global (#9830)
fix AF-2129
This commit is contained in:
+3
-2
@@ -84,14 +84,15 @@ export class FootNotePopup extends WithDisposable(LitElement) {
|
||||
const referenceType = this.footnote.reference.type;
|
||||
const { docId, url } = this.footnote.reference;
|
||||
switch (referenceType) {
|
||||
case 'doc':
|
||||
case 'doc': {
|
||||
if (!docId) {
|
||||
break;
|
||||
}
|
||||
this.std
|
||||
.getOptional(RefNodeSlotsProvider)
|
||||
?.docLinkClicked.emit({ pageId: docId });
|
||||
?.docLinkClicked.emit({ pageId: docId, host: this.std.host });
|
||||
break;
|
||||
}
|
||||
case 'url':
|
||||
if (!url) {
|
||||
break;
|
||||
|
||||
+5
-2
@@ -56,11 +56,14 @@ export class AffineLink extends ShadowlessElement {
|
||||
if (!referenceInfo) return;
|
||||
|
||||
const refNodeSlotsProvider = this.std?.getOptional(RefNodeSlotsProvider);
|
||||
if (!refNodeSlotsProvider) return;
|
||||
if (!refNodeSlotsProvider || !this.std) return;
|
||||
|
||||
e?.preventDefault();
|
||||
|
||||
refNodeSlotsProvider.docLinkClicked.emit(referenceInfo);
|
||||
refNodeSlotsProvider.docLinkClicked.emit({
|
||||
...referenceInfo,
|
||||
host: this.std.host,
|
||||
});
|
||||
};
|
||||
|
||||
private readonly _whenHover = new HoverController(
|
||||
|
||||
+4
-3
@@ -200,9 +200,10 @@ export class AffineReference extends WithDisposable(ShadowlessElement) {
|
||||
|
||||
private _onClick() {
|
||||
if (!this.config.interactable) return;
|
||||
this.std
|
||||
.getOptional(RefNodeSlotsProvider)
|
||||
?.docLinkClicked.emit(this.referenceInfo);
|
||||
this.std.getOptional(RefNodeSlotsProvider)?.docLinkClicked.emit({
|
||||
...this.referenceInfo,
|
||||
host: this.std.host,
|
||||
});
|
||||
}
|
||||
|
||||
override connectedCallback() {
|
||||
|
||||
+1
@@ -71,6 +71,7 @@ export class ReferencePopup extends WithDisposable(LitElement) {
|
||||
this.std.getOptional(RefNodeSlotsProvider)?.docLinkClicked.emit({
|
||||
...this.referenceInfo,
|
||||
...event,
|
||||
host: this.std.host,
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
+2
@@ -1,11 +1,13 @@
|
||||
import type { ReferenceInfo } from '@blocksuite/affine-model';
|
||||
import type { OpenDocMode } from '@blocksuite/affine-shared/services';
|
||||
import type { EditorHost } from '@blocksuite/block-std';
|
||||
import type { Slot } from '@blocksuite/global/utils';
|
||||
|
||||
export type DocLinkClickedEvent = ReferenceInfo & {
|
||||
// default is active view
|
||||
openMode?: OpenDocMode;
|
||||
event?: MouseEvent;
|
||||
host: EditorHost;
|
||||
};
|
||||
|
||||
export type RefNodeSlots = {
|
||||
|
||||
Reference in New Issue
Block a user