diff --git a/shared/editor/marks/Link.tsx b/shared/editor/marks/Link.tsx index 64611b391..5011e3ef6 100644 --- a/shared/editor/marks/Link.tsx +++ b/shared/editor/marks/Link.tsx @@ -159,10 +159,11 @@ export default class Link extends Mark { props: { decorations: (state) => plugin.getState(state), handleDOMEvents: { - mouseover: (_view, event: MouseEvent) => { + mouseover: (view, event: MouseEvent) => { if ( event.target instanceof HTMLAnchorElement && - !event.target.className.includes("ProseMirror-widget") + !event.target.className.includes("ProseMirror-widget") && + (!view.editable || (view.editable && !view.hasFocus())) ) { if (this.options.onHoverLink) { return this.options.onHoverLink(event); @@ -199,6 +200,20 @@ export default class Link extends Mark { return true; } + return false; + }, + click: (view, event) => { + if (!(event.target instanceof HTMLAnchorElement)) { + return false; + } + + // Prevent all default click behavior of links, see mousedown above + // for custom link handling. + if (this.options.onClickLink) { + event.stopPropagation(); + event.preventDefault(); + } + return false; }, }, diff --git a/shared/i18n/locales/en_US/translation.json b/shared/i18n/locales/en_US/translation.json index 3c02aae5c..0dd9a8c4a 100644 --- a/shared/i18n/locales/en_US/translation.json +++ b/shared/i18n/locales/en_US/translation.json @@ -248,8 +248,8 @@ "Restore": "Restore", "Choose a collection": "Choose a collection", "Unpublish": "Unpublish", - "Permanently delete": "Permanently delete", "Move": "Move", + "Permanently delete": "Permanently delete", "Enable embeds": "Enable embeds", "Disable embeds": "Disable embeds", "Full width": "Full width",