@atlaskit/editor-plugin-rule
Version:
Rule plugin for @atlaskit/editor-core
30 lines • 1.05 kB
JavaScript
import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
import { createSelectionClickHandler } from '@atlaskit/editor-common/selection';
import { RuleNodeView } from '../node-views/RuleNodeView';
var selectRuleOnClick = createSelectionClickHandler(['rule'], function (target) {
return !!target.closest('[data-rule-node-view]');
}, {
useLongPressSelection: false
});
export var createPlugin = function createPlugin() {
return new SafePlugin({
props: {
nodeViews: {
rule: function rule(node, view) {
return new RuleNodeView(node, view);
}
},
handleClickOn: function handleClickOn(view) {
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
args[_key - 1] = arguments[_key];
}
var handled = selectRuleOnClick.apply(void 0, [view].concat(args));
if (handled && view.editable) {
view.focus();
}
return handled;
}
}
});
};
export default createPlugin;