@atlaskit/editor-plugin-track-changes
Version:
ShowDiff plugin for @atlaskit/editor-core
82 lines (81 loc) • 3.67 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.trackChangesPlugin = void 0;
var _react = _interopRequireDefault(require("react"));
var _keymaps = require("./pm-plugins/keymaps");
var _main = require("./pm-plugins/main");
var _types = require("./pm-plugins/types");
var _toolbarComponents = require("./ui/toolbar-components");
var _TrackChangesToolbarButton = require("./ui/TrackChangesToolbarButton");
var trackChangesPlugin = exports.trackChangesPlugin = function trackChangesPlugin(_ref) {
var api = _ref.api,
options = _ref.config;
var isToolbarAIFCEnabled = Boolean(api === null || api === void 0 ? void 0 : api.toolbar);
var primaryToolbarComponent = function primaryToolbarComponent() {
return /*#__PURE__*/_react.default.createElement(_TrackChangesToolbarButton.TrackChangesToolbarButton, {
api: api
});
};
if ((options === null || options === void 0 ? void 0 : options.showOnToolbar) === true) {
if (isToolbarAIFCEnabled) {
var _api$toolbar;
api === null || api === void 0 || (_api$toolbar = api.toolbar) === null || _api$toolbar === void 0 || _api$toolbar.actions.registerComponents((0, _toolbarComponents.getToolbarComponents)(api, options));
} else {
var _api$primaryToolbar;
api === null || api === void 0 || (_api$primaryToolbar = api.primaryToolbar) === null || _api$primaryToolbar === void 0 || (_api$primaryToolbar = _api$primaryToolbar.actions) === null || _api$primaryToolbar === void 0 || _api$primaryToolbar.registerComponent({
name: 'trackChanges',
component: primaryToolbarComponent
});
}
}
return {
name: 'trackChanges',
pmPlugins: function pmPlugins() {
return [{
name: 'trackChangesKeyMap',
plugin: function plugin() {
return (0, _keymaps.keymapPlugin)(api);
}
}, {
name: 'trackChangesPlugin',
plugin: function plugin() {
return (0, _main.createTrackChangesPlugin)(api);
}
}];
},
commands: {
toggleChanges: function toggleChanges(_ref2) {
var tr = _ref2.tr;
return tr.setMeta(_main.trackChangesPluginKey, {
action: _types.TOGGLE_TRACK_CHANGES_ACTION.TOGGLE_TRACK_CHANGES
});
},
resetBaseline: function resetBaseline(_ref3) {
var _api$trackChanges;
var tr = _ref3.tr;
if (!(api !== null && api !== void 0 && (_api$trackChanges = api.trackChanges) !== null && _api$trackChanges !== void 0 && (_api$trackChanges = _api$trackChanges.sharedState.currentState()) !== null && _api$trackChanges !== void 0 && _api$trackChanges.isShowDiffAvailable)) {
return null;
}
return tr.setMeta(_main.trackChangesPluginKey, {
action: _types.TOGGLE_TRACK_CHANGES_ACTION.RESET_BASELINE
});
}
},
getSharedState: function getSharedState(editorState) {
var _trackChangesPluginKe, _trackChangesPluginKe2;
if (!editorState) {
return {
isDisplayingChanges: false,
isShowDiffAvailable: false
};
}
return {
isDisplayingChanges: Boolean((_trackChangesPluginKe = _main.trackChangesPluginKey.getState(editorState)) === null || _trackChangesPluginKe === void 0 ? void 0 : _trackChangesPluginKe.shouldChangesBeDisplayed),
isShowDiffAvailable: Boolean((_trackChangesPluginKe2 = _main.trackChangesPluginKey.getState(editorState)) === null || _trackChangesPluginKe2 === void 0 ? void 0 : _trackChangesPluginKe2.isShowDiffAvailable)
};
}
};
};