@atlaskit/editor-plugin-context-identifier
Version:
Context identifier plugin for @atlaskit/editor-core
38 lines • 1.6 kB
JavaScript
import { createPlugin, pluginKey } from './pm-plugins/main';
export var contextIdentifierPlugin = function contextIdentifierPlugin(_ref) {
var config = _ref.config,
api = _ref.api;
return {
name: 'contextIdentifier',
commands: {
setProvider: function setProvider(config) {
return function (_ref2) {
var _api$contextIdentifie;
var tr = _ref2.tr;
// If no change, don't dispatch
if ((config === null || config === void 0 ? void 0 : config.contextIdentifierProvider) === (api === null || api === void 0 || (_api$contextIdentifie = api.contextIdentifier) === null || _api$contextIdentifie === void 0 || (_api$contextIdentifie = _api$contextIdentifie.sharedState.currentState()) === null || _api$contextIdentifie === void 0 ? void 0 : _api$contextIdentifie.contextIdentifierProvider)) {
return null;
}
return tr.setMeta(pluginKey, {
contextIdentifierProvider: config === null || config === void 0 ? void 0 : config.contextIdentifierProvider
});
};
}
},
getSharedState: function getSharedState(state) {
var _pluginKey$getState;
if (!state) {
return undefined;
}
return {
contextIdentifierProvider: (_pluginKey$getState = pluginKey.getState(state)) === null || _pluginKey$getState === void 0 ? void 0 : _pluginKey$getState.contextIdentifierProvider
};
},
pmPlugins: function pmPlugins() {
return [{
name: 'contextIdentifier',
plugin: createPlugin(config, api)
}];
}
};
};