UNPKG

@atlaskit/editor-core

Version:

A package contains Atlassian editor core functionality

64 lines 3.26 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var bold_1 = require("@atlaskit/icon/glyph/editor/bold"); var italic_1 = require("@atlaskit/icon/glyph/editor/italic"); var React = require("react"); var react_1 = require("react"); var analytics_1 = require("../../analytics"); var keymaps_1 = require("../../keymaps"); var ToolbarButton_1 = require("../ToolbarButton"); var styles_1 = require("./styles"); var ToolbarTextFormatting = (function (_super) { tslib_1.__extends(ToolbarTextFormatting, _super); function ToolbarTextFormatting() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.state = {}; _this.handlePluginStateChange = function (pluginState) { _this.setState({ boldActive: pluginState.strongActive, boldDisabled: pluginState.strongDisabled, boldHidden: pluginState.strongHidden, italicActive: pluginState.emActive, italicDisabled: pluginState.emDisabled, italicHidden: pluginState.emHidden, }); }; _this.handleBoldClick = function () { if (!_this.state.boldDisabled) { return _this.props.pluginState.toggleStrong(_this.props.editorView); } return false; }; _this.handleItalicClick = function () { if (!_this.state.italicDisabled) { return _this.props.pluginState.toggleEm(_this.props.editorView); } return false; }; return _this; } ToolbarTextFormatting.prototype.componentDidMount = function () { this.props.pluginState.subscribe(this.handlePluginStateChange); }; ToolbarTextFormatting.prototype.componentWillUnmount = function () { this.props.pluginState.unsubscribe(this.handlePluginStateChange); }; ToolbarTextFormatting.prototype.render = function () { var disabled = this.props.disabled; return (React.createElement(styles_1.ButtonGroup, null, this.state.boldHidden ? null : React.createElement(ToolbarButton_1.default, { onClick: this.handleBoldClick, selected: this.state.boldActive, disabled: disabled || this.state.boldDisabled, title: keymaps_1.tooltip(keymaps_1.toggleBold), iconBefore: React.createElement(bold_1.default, { label: "Bold" }) }), this.state.italicHidden ? null : React.createElement(ToolbarButton_1.default, { onClick: this.handleItalicClick, selected: this.state.italicActive, disabled: disabled || this.state.italicDisabled, title: keymaps_1.tooltip(keymaps_1.toggleItalic), iconBefore: React.createElement(italic_1.default, { label: "Italic" }) }))); }; return ToolbarTextFormatting; }(react_1.PureComponent)); tslib_1.__decorate([ analytics_1.analyticsDecorator('atlassian.editor.format.strong.button') ], ToolbarTextFormatting.prototype, "handleBoldClick", void 0); tslib_1.__decorate([ analytics_1.analyticsDecorator('atlassian.editor.format.em.button') ], ToolbarTextFormatting.prototype, "handleItalicClick", void 0); exports.default = ToolbarTextFormatting; //# sourceMappingURL=index.js.map