From 308a98c87646da49d578b1d1b6d232bdd4de7f24 Mon Sep 17 00:00:00 2001 From: Elscrux Date: Fri, 26 Apr 2024 17:22:02 +0200 Subject: [PATCH] Add discardShortcutEnabled setting to opt into this feature Only editing the task description and comments have this feature enabled --- .../src/components/input/editor/TipTap.vue | 33 +++++++++++-------- .../components/tasks/partials/comments.vue | 1 + .../components/tasks/partials/description.vue | 1 + 3 files changed, 22 insertions(+), 13 deletions(-) diff --git a/frontend/src/components/input/editor/TipTap.vue b/frontend/src/components/input/editor/TipTap.vue index 91eb6598e..48c09fa38 100644 --- a/frontend/src/components/input/editor/TipTap.vue +++ b/frontend/src/components/input/editor/TipTap.vue @@ -203,6 +203,7 @@ const { showSave = false, placeholder = '', editShortcut = '', + discardShortcutEnabled = false, } = defineProps<{ modelValue: string, uploadCallback?: UploadCallback, @@ -211,6 +212,7 @@ const { showSave?: boolean, placeholder?: string, editShortcut?: string, + discardShortcutEnabled?: boolean, }>() const emit = defineEmits(['update:modelValue', 'save']) @@ -351,19 +353,6 @@ const editor = useEditor({ } }, }), - // Add a custom extension for the Escape key - Extension.create({ - name: 'escapeKey', - - addKeyboardShortcuts() { - return { - 'Escape': () => { - exitEditMode() - return true - }, - } - }, - }), Heading, History, HorizontalRule, @@ -438,6 +427,24 @@ const editor = useEditor({ suggestion: suggestionSetup(t), }), BubbleMenu, + + // Add a custom extension for the Escape key + ...( + discardShortcutEnabled + ?[discardShortcutEnabled && Extension.create({ + name: 'escapeKey', + + addKeyboardShortcuts() { + return { + 'Escape': () => { + exitEditMode() + return true + }, + } + }, + })] + : [] + ), ], onUpdate: () => { bubbleNow() diff --git a/frontend/src/components/tasks/partials/comments.vue b/frontend/src/components/tasks/partials/comments.vue index 22a451eda..deb60849c 100644 --- a/frontend/src/components/tasks/partials/comments.vue +++ b/frontend/src/components/tasks/partials/comments.vue @@ -85,6 +85,7 @@ :upload-enabled="true" :bottom-actions="actions[c.id]" :show-save="true" + :discard-shortcut-enabled="true" initial-mode="preview" @update:modelValue=" () => { diff --git a/frontend/src/components/tasks/partials/description.vue b/frontend/src/components/tasks/partials/description.vue index 27a50e89f..027e0d79a 100644 --- a/frontend/src/components/tasks/partials/description.vue +++ b/frontend/src/components/tasks/partials/description.vue @@ -30,6 +30,7 @@ :placeholder="$t('task.description.placeholder')" :show-save="true" edit-shortcut="e" + :discard-shortcut-enabled="true" @update:modelValue="saveWithDelay" @save="save" />