UNPKG

@atlaskit/editor-core

Version:

A package contains Atlassian editor core functionality

47 lines 2.25 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var link_1 = require("@atlaskit/icon/glyph/editor/link"); var React = require("react"); var react_1 = require("react"); var analytics_1 = require("../../analytics"); var keymaps_1 = require("../../keymaps"); var prosemirror_1 = require("../../prosemirror"); var ToolbarButton_1 = require("../ToolbarButton"); var styles_1 = require("./styles"); exports.stateKey = new prosemirror_1.PluginKey('hypelinkPlugin'); var ToolbarHyperlink = (function (_super) { tslib_1.__extends(ToolbarHyperlink, _super); function ToolbarHyperlink() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.state = {}; _this.toggleLinkPanel = function () { var _a = _this.props, pluginState = _a.pluginState, editorView = _a.editorView; pluginState.showLinkPanel(editorView); return true; }; _this.handlePluginStateChange = function (pluginState) { _this.setState({ disabled: !pluginState.linkable || pluginState.active }); }; return _this; } ToolbarHyperlink.prototype.componentDidMount = function () { this.props.pluginState.subscribe(this.handlePluginStateChange); }; ToolbarHyperlink.prototype.componentWillUnmount = function () { this.props.pluginState.unsubscribe(this.handlePluginStateChange); }; ToolbarHyperlink.prototype.render = function () { var _a = this.state, adding = _a.adding, disabled = _a.disabled; return (React.createElement(styles_1.OuterContainer, null, React.createElement(ToolbarButton_1.default, { disabled: disabled || this.props.disabled, onClick: this.toggleLinkPanel, selected: adding, title: keymaps_1.tooltip(keymaps_1.addLink), iconBefore: React.createElement(link_1.default, { label: "Add link" }) }))); }; return ToolbarHyperlink; }(react_1.PureComponent)); tslib_1.__decorate([ analytics_1.analyticsDecorator('atlassian.editor.format.hyperlink.button') ], ToolbarHyperlink.prototype, "toggleLinkPanel", void 0); exports.default = ToolbarHyperlink; //# sourceMappingURL=index.js.map