Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/text.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMarcel Klehr <mklehr@gmx.net>2022-10-21 16:12:00 +0300
committerJonas <jonas@freesources.org>2022-10-31 13:13:03 +0300
commit36699030e90422f7007887f78172116d936eb281 (patch)
treeb4f5544bdc8df1f800658543e9095e9abb9d9dd6 /src
parent497432a49535024f5e33763e9ee085edd4257231 (diff)
Fix link opening in readonly mode
In readonly mode it seems prosemirror doesn't register a click handler override, which is why link clicks go right through to the browser handler. This commit registers a clickPreventer plugin that preventDefault's clicks when the editor is readonly fixes #579 Signed-off-by: Marcel Klehr <mklehr@gmx.net>
Diffstat (limited to 'src')
-rw-r--r--src/marks/Link.js3
-rw-r--r--src/plugins/link.js18
2 files changed, 19 insertions, 2 deletions
diff --git a/src/marks/Link.js b/src/marks/Link.js
index 02da20f50..c9dc1d071 100644
--- a/src/marks/Link.js
+++ b/src/marks/Link.js
@@ -22,7 +22,7 @@
import TipTapLink from '@tiptap/extension-link'
import { domHref, parseHref, openLink } from './../helpers/links.js'
-import { clickHandler } from '../plugins/link.js'
+import { clickHandler, clickPreventer } from '../plugins/link.js'
const Link = TipTapLink.extend({
@@ -86,6 +86,7 @@ const Link = TipTapLink.extend({
type: this.type,
onClick: this.options.onClick,
}),
+ clickPreventer()
]
},
})
diff --git a/src/plugins/link.js b/src/plugins/link.js
index fbc3df671..fe18ecc41 100644
--- a/src/plugins/link.js
+++ b/src/plugins/link.js
@@ -27,4 +27,20 @@ const clickHandler = ({ editor, type, onClick }) => {
})
}
-export { clickHandler }
+const clickPreventer = () => {
+ return new Plugin({
+ props: {
+ key: new PluginKey('textAvoidLinkClick'),
+ handleDOMEvents: {
+ click: (view, event) => {
+ if (!view.editable) {
+ event.preventDefault()
+ return false
+ }
+ }
+ }
+ },
+ })
+}
+
+export { clickHandler, clickPreventer }