UNPKG

@atlaskit/renderer

Version:
137 lines (136 loc) 6.28 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = exports.EmojiItemComponent = void 0; var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _react = require("@emotion/react"); var _platformFeatureFlags = require("@atlaskit/platform-feature-flags"); var _element = require("@atlaskit/emoji/element"); var _react2 = require("react"); var _providerFactory = require("@atlaskit/editor-common/provider-factory"); var _useInlineAnnotationProps = require("../../ui/annotations/element/useInlineAnnotationProps"); function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } /** * @jsxRuntime classic * @jsx jsx */ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766 // eslint-disable-next-line @repo/internal/react/no-class-components var EmojiNode = /*#__PURE__*/function (_PureComponent) { function EmojiNode(props) { var _this; (0, _classCallCheck2.default)(this, EmojiNode); _this = _callSuper(this, EmojiNode, [props]); (0, _defineProperty2.default)(_this, "renderWithProvider", function (providers) { var _resourceConfig$optim; var _this$props = _this.props, allowTextFallback = _this$props.allowTextFallback, shortName = _this$props.shortName, id = _this$props.id, fallback = _this$props.fallback, fitToHeight = _this$props.fitToHeight, showTooltip = _this$props.showTooltip, resourceConfig = _this$props.resourceConfig; if (allowTextFallback && !providers.emojiProvider) { return (0, _react.jsx)("span", { "data-emoji-id": id, "data-emoji-short-name": shortName, "data-emoji-text": fallback || shortName }, fallback || shortName); } if (!providers.emojiProvider) { return null; } return (0, _react.jsx)(_element.ResourcedEmoji // eslint-disable-next-line @atlassian/perf-linting/no-unstable-inline-props -- Ignored via go/ees017 (to be fixed) , { emojiId: { id: id, fallback: fallback, shortName: shortName }, emojiProvider: providers.emojiProvider, showTooltip: showTooltip, fitToHeight: fitToHeight, optimistic: true, optimisticImageURL: resourceConfig === null || resourceConfig === void 0 || (_resourceConfig$optim = resourceConfig.optimisticImageApi) === null || _resourceConfig$optim === void 0 ? void 0 : _resourceConfig$optim.getUrl({ id: id, fallback: fallback, shortName: shortName }), editorEmoji: true, onEmojiLoadSuccess: resourceConfig === null || resourceConfig === void 0 ? void 0 : resourceConfig.onEmojiLoadSuccess, onEmojiLoadFail: resourceConfig === null || resourceConfig === void 0 ? void 0 : resourceConfig.onEmojiLoadFail }); }); _this.providerFactory = props.providers || new _providerFactory.ProviderFactory(); return _this; } (0, _inherits2.default)(EmojiNode, _PureComponent); return (0, _createClass2.default)(EmojiNode, [{ key: "componentWillUnmount", value: function componentWillUnmount() { if (!this.props.providers) { // new ProviderFactory is created if no `providers` has been set // in this case when component is unmounted it's safe to destroy this providerFactory this.providerFactory.destroy(); } } }, { key: "render", value: function render() { return (0, _react.jsx)(_providerFactory.WithProviders // eslint-disable-next-line @atlassian/perf-linting/no-unstable-inline-props -- Ignored via go/ees017 (to be fixed) , { providers: ['emojiProvider'], providerFactory: this.providerFactory, renderNode: this.renderWithProvider }); } }]); }(_react2.PureComponent); (0, _defineProperty2.default)(EmojiNode, "displayName", 'EmojiNode'); (0, _defineProperty2.default)(EmojiNode, "defaultProps", { showTooltip: true }); var EmojiItemComponent = exports.EmojiItemComponent = function EmojiItemComponent(props) { var id = props.id, providers = props.providers, shortName = props.shortName, text = props.text, fitToHeight = props.fitToHeight, resourceConfig = props.resourceConfig; var inlineAnnotationProps = (0, _useInlineAnnotationProps.useInlineAnnotationProps)(props); if ((0, _platformFeatureFlags.fg)('editor_inline_comments_on_inline_nodes')) { return ( // Ignored via go/ees005 // eslint-disable-next-line react/jsx-props-no-spreading (0, _react.jsx)("span", inlineAnnotationProps, (0, _react.jsx)(EmojiNode, { allowTextFallback: true, id: id, shortName: shortName, fallback: text, providers: providers, fitToHeight: fitToHeight, resourceConfig: resourceConfig })) ); } return (0, _react.jsx)(EmojiNode, { allowTextFallback: true, id: id, shortName: shortName, fallback: text, providers: providers, fitToHeight: fitToHeight, resourceConfig: resourceConfig }); }; var _default_1 = /*#__PURE__*/(0, _react2.memo)(EmojiItemComponent); var _default = exports.default = _default_1;