diff options
Diffstat (limited to 'app/assets/javascripts/behaviors/markdown/copy_as_gfm.js')
-rw-r--r-- | app/assets/javascripts/behaviors/markdown/copy_as_gfm.js | 33 |
1 files changed, 11 insertions, 22 deletions
diff --git a/app/assets/javascripts/behaviors/markdown/copy_as_gfm.js b/app/assets/javascripts/behaviors/markdown/copy_as_gfm.js index 52d9f2f0322..947d019c725 100644 --- a/app/assets/javascripts/behaviors/markdown/copy_as_gfm.js +++ b/app/assets/javascripts/behaviors/markdown/copy_as_gfm.js @@ -1,5 +1,8 @@ import $ from 'jquery'; +import { DOMParser } from 'prosemirror-model'; import { getSelectedFragment } from '~/lib/utils/common_utils'; +import schema from './schema'; +import markdownSerializer from './serializer'; export class CopyAsGFM { constructor() { @@ -36,13 +39,9 @@ export class CopyAsGFM { div.appendChild(el.cloneNode(true)); const html = div.innerHTML; - CopyAsGFM.nodeToGFM(el) - .then(res => { - clipboardData.setData('text/plain', el.textContent); - clipboardData.setData('text/x-gfm', res); - clipboardData.setData('text/html', html); - }) - .catch(() => {}); + clipboardData.setData('text/plain', el.textContent); + clipboardData.setData('text/x-gfm', this.nodeToGFM(el)); + clipboardData.setData('text/html', html); } static pasteGFM(e) { @@ -138,21 +137,11 @@ export class CopyAsGFM { } static nodeToGFM(node) { - return Promise.all([ - import(/* webpackChunkName: 'gfm_copy_extra' */ 'prosemirror-model'), - import(/* webpackChunkName: 'gfm_copy_extra' */ './schema'), - import(/* webpackChunkName: 'gfm_copy_extra' */ './serializer'), - ]) - .then(([prosemirrorModel, schema, markdownSerializer]) => { - const { DOMParser } = prosemirrorModel; - const wrapEl = document.createElement('div'); - wrapEl.appendChild(node.cloneNode(true)); - const doc = DOMParser.fromSchema(schema.default).parse(wrapEl); - - const res = markdownSerializer.default.serialize(doc); - return res; - }) - .catch(() => {}); + const wrapEl = document.createElement('div'); + wrapEl.appendChild(node.cloneNode(true)); + const doc = DOMParser.fromSchema(schema).parse(wrapEl); + + return markdownSerializer.serialize(doc); } } |