|
1 | 1 | <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 | + > |
3 | 9 | <bubble-menu |
4 | 10 | v-if="withExtensions" |
5 | 11 | ref="bubbleMenu" |
@@ -185,6 +191,7 @@ export default { |
185 | 191 | } |
186 | 192 |
|
187 | 193 | return { |
| 194 | + hoverCursor: false, |
188 | 195 | editor: new Editor({ |
189 | 196 | extensions: extensions, |
190 | 197 | content: this.value, |
@@ -259,13 +266,29 @@ export default { |
259 | 266 | }) |
260 | 267 | }, |
261 | 268 | }, |
| 269 | + mounted() { |
| 270 | + document.addEventListener('keydown', this.specialKeyListeners, { passive: true }) |
| 271 | + document.addEventListener('keyup', this.specialKeyListeners, { passive: true }) |
| 272 | + document.addEventListener('contextmenu', this.specialMenuListeners, { passive: true }) |
| 273 | + }, |
| 274 | + beforeDestroy() { |
| 275 | + document.removeEventListener('keydown', this.specialKeyListeners) |
| 276 | + document.removeEventListener('keyup', this.specialKeyListeners) |
| 277 | + document.removeEventListener('contextmenu', this.specialMenuListeners) |
| 278 | + }, |
262 | 279 | methods: { |
263 | 280 | focus() { |
264 | 281 | this.editor.commands.focus() |
265 | 282 | }, |
266 | 283 | onUpdate() { |
267 | 284 | this.$emit('input', this.html) |
268 | 285 | }, |
| 286 | + specialKeyListeners(event) { |
| 287 | + this.hoverCursor = event.metaKey || event.ctrlKey |
| 288 | + }, |
| 289 | + specialMenuListeners() { |
| 290 | + this.hoverCursor = false |
| 291 | + }, |
269 | 292 | }, |
270 | 293 | } |
271 | 294 | </script> |
@@ -364,4 +387,7 @@ div.editor:deep(.editor__content .ProseMirror li p:not(:last-child)) { |
364 | 387 | .editor.editor--editable:deep(.autolink) { |
365 | 388 | cursor: text; |
366 | 389 | } |
| 390 | +.editor.editor--link-cursor:deep(.autolink) { |
| 391 | + cursor: pointer; |
| 392 | +} |
367 | 393 | </style> |
0 commit comments