debian-mirror-gitlab/app/assets/javascripts/content_editor/extensions/table.js

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

44 lines
1.1 KiB
JavaScript
Raw Normal View History

2021-12-11 22:18:48 +05:30
import { Table } from '@tiptap/extension-table';
import { debounce } from 'lodash';
2022-05-07 20:08:51 +05:30
import { VARIANT_WARNING } from '~/flash';
2021-12-11 22:18:48 +05:30
import { __ } from '~/locale';
import { getMarkdownSource } from '../services/markdown_sourcemap';
import { shouldRenderHTMLTable } from '../services/serialization_helpers';
let alertShown = false;
const onUpdate = debounce((editor) => {
if (alertShown) return;
editor.state.doc.descendants((node) => {
if (node.type.name === 'table' && node.attrs.isMarkdown && shouldRenderHTMLTable(node)) {
editor.emit('alert', {
message: __(
'The content editor may change the markdown formatting style of the document, which may not match your original markdown style.',
),
2022-05-07 20:08:51 +05:30
variant: VARIANT_WARNING,
2021-12-11 22:18:48 +05:30
});
alertShown = true;
return false;
}
return true;
});
}, 1000);
export default Table.extend({
addAttributes() {
return {
isMarkdown: {
default: null,
parseHTML: (element) => Boolean(getMarkdownSource(element)),
},
};
},
onUpdate({ editor }) {
onUpdate(editor);
},
});