X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/572037ef1fd1e778c33c609ef295c50de33a0652..refs/pull/4301/head:/resources/js/components/markdown-editor.js diff --git a/resources/js/components/markdown-editor.js b/resources/js/components/markdown-editor.js index 6b4682d1e..fa06807a5 100644 --- a/resources/js/components/markdown-editor.js +++ b/resources/js/components/markdown-editor.js @@ -1,6 +1,5 @@ -import {debounce} from "../services/util"; -import {Component} from "./component"; -import {init as initEditor} from "../markdown/editor"; +import {Component} from './component'; +import {init as initEditor} from '../markdown/editor'; export class MarkdownEditor extends Component { @@ -17,7 +16,7 @@ export class MarkdownEditor extends Component { this.divider = this.$refs.divider; this.displayWrap = this.$refs.displayWrap; - const settingContainer = this.$refs.settingContainer; + const {settingContainer} = this.$refs; const settingInputs = settingContainer.querySelectorAll('input[type="checkbox"]'); this.editor = null; @@ -45,20 +44,18 @@ export class MarkdownEditor extends Component { window.$events.emitPublic(this.elem, 'editor-markdown::setup', { markdownIt: this.editor.markdown.getRenderer(), displayEl: this.display, - // TODO - // codeMirrorInstance: this.editor.cm, + cmEditorView: this.editor.cm, }); } setupListeners() { - // Button actions this.elem.addEventListener('click', event => { - let button = event.target.closest('button[data-action]'); + const button = event.target.closest('button[data-action]'); if (button === null) return; const action = button.getAttribute('data-action'); - if (action === 'insertImage') this.editor.actions.insertImage(); + if (action === 'insertImage') this.editor.actions.showImageInsert(); if (action === 'insertLink') this.editor.actions.showLinkSelector(); if (action === 'insertDrawing' && (event.ctrlKey || event.metaKey)) { this.editor.actions.showImageManager(); @@ -81,31 +78,23 @@ export class MarkdownEditor extends Component { toolbarLabel.closest('.markdown-editor-wrap').classList.add('active'); }); - // Refresh CodeMirror on container resize - // TODO - // const resizeDebounced = debounce(() => this.editor.cm.refresh(), 100, false); - // const observer = new ResizeObserver(resizeDebounced); - // observer.observe(this.elem); - this.handleDividerDrag(); } handleDividerDrag() { - this.divider.addEventListener('pointerdown', event => { + this.divider.addEventListener('pointerdown', () => { const wrapRect = this.elem.getBoundingClientRect(); - const moveListener = (event) => { + const moveListener = event => { const xRel = event.pageX - wrapRect.left; const xPct = Math.min(Math.max(20, Math.floor((xRel / wrapRect.width) * 100)), 80); - this.displayWrap.style.flexBasis = `${100-xPct}%`; + this.displayWrap.style.flexBasis = `${100 - xPct}%`; this.editor.settings.set('editorWidth', xPct); }; - const upListener = (event) => { + const upListener = () => { window.removeEventListener('pointermove', moveListener); window.removeEventListener('pointerup', upListener); this.display.style.pointerEvents = null; document.body.style.userSelect = null; - // TODO - // this.editor.cm.refresh(); }; this.display.style.pointerEvents = 'none'; @@ -115,7 +104,7 @@ export class MarkdownEditor extends Component { }); const widthSetting = this.editor.settings.get('editorWidth'); if (widthSetting) { - this.displayWrap.style.flexBasis = `${100-widthSetting}%`; + this.displayWrap.style.flexBasis = `${100 - widthSetting}%`; } }