@atlaskit/editor-plugin-collab-edit
Version:
Collab Edit plugin for @atlaskit/editor-core
31 lines • 1.13 kB
JavaScript
import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
import { PluginKey } from '@atlaskit/editor-prosemirror/state';
var nativeCollabProviderPluginKey = new PluginKey('nativeCollabProviderPlugin');
export var nativeCollabProviderPlugin = function nativeCollabProviderPlugin(_ref) {
var providerPromise = _ref.providerPromise;
return new SafePlugin({
key: nativeCollabProviderPluginKey,
state: {
init: function init() {
return null;
},
apply: function apply(tr, currentPluginState) {
var provider = tr.getMeta(nativeCollabProviderPluginKey);
return provider ? provider : currentPluginState;
}
},
view: function view(editorView) {
providerPromise.then(function (provider) {
var dispatch = editorView.dispatch,
state = editorView.state;
var tr = state.tr;
tr.setMeta(nativeCollabProviderPluginKey, provider);
dispatch(tr);
});
return {};
}
});
};
export var getCollabProvider = function getCollabProvider(editorState) {
return nativeCollabProviderPluginKey.getState(editorState);
};