From 9df082741434d603b284081a3b16a24ff2d63a1a Mon Sep 17 00:00:00 2001 From: Matthew Connelly Date: Thu, 27 Mar 2025 19:30:43 -0400 Subject: [PATCH] HAR-9057 - getting super editor keydown event --- packages/super-editor/src/components/SuperEditor.vue | 2 +- packages/super-editor/src/core/Editor.js | 2 ++ packages/superdoc/src/SuperDoc.vue | 5 +++++ packages/superdoc/src/core/SuperDoc.js | 2 ++ 4 files changed, 10 insertions(+), 1 deletion(-) diff --git a/packages/super-editor/src/components/SuperEditor.vue b/packages/super-editor/src/components/SuperEditor.vue index d0b9760e01..da83d03a4d 100644 --- a/packages/super-editor/src/components/SuperEditor.vue +++ b/packages/super-editor/src/components/SuperEditor.vue @@ -138,7 +138,7 @@ const initEditor = async ({ content, media = {}, mediaFiles = {}, fonts = {} } = }; const handleSuperEditorKeydown = (event) => { - emit('editor-keydown', { editor: editor.value }); + props.options.onKeydown({editor: editor.value }) }; const handleSuperEditorClick = (event) => { diff --git a/packages/super-editor/src/core/Editor.js b/packages/super-editor/src/core/Editor.js index d51a827bc8..7180c9982d 100644 --- a/packages/super-editor/src/core/Editor.js +++ b/packages/super-editor/src/core/Editor.js @@ -82,6 +82,7 @@ export class Editor extends EventEmitter { }, onTrackedChangesUpdate: () => null, onCommentsUpdate: () => null, + onKeydown: () => null, onCommentsLoaded: () => null, onCommentClicked: () => null, onCommentLocationsUpdate: () => null, @@ -147,6 +148,7 @@ export class Editor extends EventEmitter { this.on('commentsLoaded', this.options.onCommentsLoaded); this.on('commentClick', this.options.onCommentClicked); this.on('commentsUpdate', this.options.onCommentsUpdate); + this.on('keydown', this.options.onKeydown); this.on('locked', this.options.onDocumentLocked); this.on('collaborationReady', this.#onCollaborationReady); this.on('paginationUpdate', this.options.onPaginationUpdate); diff --git a/packages/superdoc/src/SuperDoc.vue b/packages/superdoc/src/SuperDoc.vue index 2e701587c3..1b84ca0877 100644 --- a/packages/superdoc/src/SuperDoc.vue +++ b/packages/superdoc/src/SuperDoc.vue @@ -221,6 +221,10 @@ const onEditorException = ({ error, editor }) => { proxy.$superdoc.emit('exception', { error, editor }); }; +const onEditorKeydown = ({ editor }) => { + proxy.$superdoc.emit('editor-keydown', { editor }); +} + const editorOptions = (doc) => { const options = { pagination: proxy.$superdoc.config.pagination, @@ -243,6 +247,7 @@ const editorOptions = (doc) => { onCollaborationReady: onEditorCollaborationReady, onContentError: onEditorContentError, onException: onEditorException, + onKeydown: onEditorKeydown, onCommentsLoaded, onCommentsUpdate: onEditorCommentsUpdate, onCommentLocationsUpdate: onEditorCommentLocationsUpdate, diff --git a/packages/superdoc/src/core/SuperDoc.js b/packages/superdoc/src/core/SuperDoc.js index 44a38631b1..af032bad14 100644 --- a/packages/superdoc/src/core/SuperDoc.js +++ b/packages/superdoc/src/core/SuperDoc.js @@ -130,6 +130,7 @@ export class SuperDoc extends EventEmitter { onSidebarToggle: () => null, onCollaborationReady: () => null, onCommentsListChange: () => null, + onEditorKeydown: () => null, onException: () => null, // Image upload handler @@ -229,6 +230,7 @@ export class SuperDoc extends EventEmitter { this.on('pdf-document-ready', this.config.onPdfDocumentReady); this.on('sidebar-toggle', this.config.onSidebarToggle); this.on('collaboration-ready', this.config.onCollaborationReady); + this.on('editor-keydown', this.config.onEditorKeydown); this.on('content-error', this.onContentError); this.on('exception', this.config.onException); }