From aff2cebf2ad194bbd1b45476a2b843331aa4fabc Mon Sep 17 00:00:00 2001 From: Rijk van Zanten Date: Tue, 22 Jun 2021 19:06:59 -0400 Subject: [PATCH] Pass active codemirror instance to edit action (#6449) Fixes #6373 --- .../interfaces/input-rich-text-md/edits.ts | 2 +- .../input-rich-text-md/input-rich-text-md.vue | 32 +++++++++++-------- 2 files changed, 20 insertions(+), 14 deletions(-) diff --git a/app/src/interfaces/input-rich-text-md/edits.ts b/app/src/interfaces/input-rich-text-md/edits.ts index 1558356191..dc5a547d22 100644 --- a/app/src/interfaces/input-rich-text-md/edits.ts +++ b/app/src/interfaces/input-rich-text-md/edits.ts @@ -258,7 +258,7 @@ const alterations: AlterationFunctions = { }, }; -export function edit(codemirror: CodeMirror.Editor | null, type: Alteration, options?: Record): void { +export function applyEdit(codemirror: CodeMirror.Editor | null, type: Alteration, options?: Record): void { if (codemirror) { const cursor = codemirror.getCursor('head'); const cursorFrom = codemirror.getCursor('from'); diff --git a/app/src/interfaces/input-rich-text-md/input-rich-text-md.vue b/app/src/interfaces/input-rich-text-md/input-rich-text-md.vue index 4a068c7416..b22ea647d2 100644 --- a/app/src/interfaces/input-rich-text-md/input-rich-text-md.vue +++ b/app/src/interfaces/input-rich-text-md/input-rich-text-md.vue @@ -153,7 +153,7 @@ import CodeMirror from 'codemirror'; import 'codemirror/mode/markdown/markdown'; import 'codemirror/addon/display/placeholder.js'; -import { edit, CustomSyntax } from './edits'; +import { applyEdit, CustomSyntax } from './edits'; import { getPublicURL } from '@/utils/get-root-path'; import { md } from '@/utils/md'; import { addTokenToURL } from '@/api'; @@ -253,18 +253,18 @@ export default defineComponent({ columns: 4, }); - useShortcut('meta+b', () => edit(codemirror, 'bold'), markdownInterface); - useShortcut('meta+i', () => edit(codemirror, 'italic'), markdownInterface); - useShortcut('meta+k', () => edit(codemirror, 'link'), markdownInterface); - useShortcut('meta+alt+d', () => edit(codemirror, 'strikethrough'), markdownInterface); - useShortcut('meta+alt+q', () => edit(codemirror, 'blockquote'), markdownInterface); - useShortcut('meta+alt+c', () => edit(codemirror, 'code'), markdownInterface); - useShortcut('meta+alt+1', () => edit(codemirror, 'heading', { level: 1 }), markdownInterface); - useShortcut('meta+alt+2', () => edit(codemirror, 'heading', { level: 2 }), markdownInterface); - useShortcut('meta+alt+3', () => edit(codemirror, 'heading', { level: 3 }), markdownInterface); - useShortcut('meta+alt+4', () => edit(codemirror, 'heading', { level: 4 }), markdownInterface); - useShortcut('meta+alt+5', () => edit(codemirror, 'heading', { level: 5 }), markdownInterface); - useShortcut('meta+alt+6', () => edit(codemirror, 'heading', { level: 6 }), markdownInterface); + useShortcut('meta+b', () => edit('bold'), markdownInterface); + useShortcut('meta+i', () => edit('italic'), markdownInterface); + useShortcut('meta+k', () => edit('link'), markdownInterface); + useShortcut('meta+alt+d', () => edit('strikethrough'), markdownInterface); + useShortcut('meta+alt+q', () => edit('blockquote'), markdownInterface); + useShortcut('meta+alt+c', () => edit('code'), markdownInterface); + useShortcut('meta+alt+1', () => edit('heading', { level: 1 }), markdownInterface); + useShortcut('meta+alt+2', () => edit('heading', { level: 2 }), markdownInterface); + useShortcut('meta+alt+3', () => edit('heading', { level: 3 }), markdownInterface); + useShortcut('meta+alt+4', () => edit('heading', { level: 4 }), markdownInterface); + useShortcut('meta+alt+5', () => edit('heading', { level: 5 }), markdownInterface); + useShortcut('meta+alt+6', () => edit('heading', { level: 6 }), markdownInterface); return { t, @@ -293,6 +293,12 @@ export default defineComponent({ imageDialogOpen.value = false; } + + function edit(type: string, options?: Record) { + if (codemirror) { + applyEdit(codemirror, type, options); + } + } }, });