@atlaskit/editor-plugin-table
Version:
Table plugin for the @atlaskit/editor
29 lines • 813 B
JavaScript
import { pluginFactory } from '@atlaskit/editor-common/utils';
import { pluginKey as tablePluginKey } from '../plugin-key';
import { pluginKey } from './plugin-key';
import reducer from './reducer';
export const {
createPluginState,
createCommand,
getPluginState
} = pluginFactory(pluginKey, reducer, {
mapping: (tr, pluginState) => {
if (tr.docChanged) {
let decorationSet = pluginState.decorationSet;
const meta = tr.getMeta(tablePluginKey);
if (meta && meta.data && meta.data.decorationSet) {
decorationSet = meta.data.decorationSet;
}
if (decorationSet) {
decorationSet = decorationSet.map(tr.mapping, tr.doc);
}
return {
...pluginState,
...{
decorationSet
}
};
}
return pluginState;
}
});