Skip to content

Commit 0d6a4fb

Browse files
committed
Show cursor on hover + meta/ctrl
1 parent 3f5e87c commit 0d6a4fb

File tree

1 file changed

+30
-1
lines changed

1 file changed

+30
-1
lines changed

frontend/src/components/form/tiptap/TiptapEditor.vue

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
<template>
2-
<div class="editor" :class="{ 'editor--editable': editable }">
2+
<div
3+
class="editor"
4+
:class="{
5+
'editor--editable': editable,
6+
'editor--link-cursor': hoverCursor,
7+
}"
8+
>
39
<bubble-menu
410
v-if="withExtensions"
511
ref="bubbleMenu"
@@ -185,6 +191,7 @@ export default {
185191
}
186192
187193
return {
194+
hoverCursor: false,
188195
editor: new Editor({
189196
extensions: extensions,
190197
content: this.value,
@@ -259,13 +266,32 @@ export default {
259266
})
260267
},
261268
},
269+
mounted() {
270+
document.removeEventListener('keydown', this.specialKeyListeners)
271+
document.removeEventListener('keyup', this.specialKeyListeners)
272+
document.removeEventListener('contextmenu', this.specialMenuListeners)
273+
document.addEventListener('keydown', this.specialKeyListeners, { passive: true })
274+
document.addEventListener('keyup', this.specialKeyListeners, { passive: true })
275+
document.addEventListener('contextmenu', this.specialMenuListeners, { passive: true })
276+
},
277+
beforeDestroy() {
278+
document.removeEventListener('keydown', this.specialKeyListeners)
279+
document.removeEventListener('keyup', this.specialKeyListeners)
280+
document.removeEventListener('contextmenu', this.specialMenuListeners)
281+
},
262282
methods: {
263283
focus() {
264284
this.editor.commands.focus()
265285
},
266286
onUpdate() {
267287
this.$emit('input', this.html)
268288
},
289+
specialKeyListeners(event) {
290+
this.hoverCursor = event.metaKey || event.ctrlKey
291+
},
292+
specialMenuListeners() {
293+
this.hoverCursor = false
294+
},
269295
},
270296
}
271297
</script>
@@ -364,4 +390,7 @@ div.editor:deep(.editor__content .ProseMirror li p:not(:last-child)) {
364390
.editor.editor--editable:deep(.autolink) {
365391
cursor: text;
366392
}
393+
.editor.editor--link-cursor:deep(.autolink) {
394+
cursor: pointer;
395+
}
367396
</style>

0 commit comments

Comments
 (0)