UNPKG

@atlaskit/editor-plugin-width

Version:

Width plugin for @atlaskit/editor-core

29 lines 805 B
import { SafePlugin } from '@atlaskit/editor-common/safe-plugin'; import { pluginKey } from './plugin-key'; export function createPlugin(dispatch) { return new SafePlugin({ key: pluginKey, state: { init: () => { return { width: document.body.offsetWidth }; }, apply(tr, pluginState) { const meta = tr.getMeta(pluginKey); if (!meta) { return pluginState; } const newPluginState = { ...pluginState, ...meta }; if (newPluginState && (pluginState.width !== newPluginState.width || pluginState.lineLength !== newPluginState.lineLength)) { dispatch(pluginKey, newPluginState); return newPluginState; } return pluginState; } } }); }