UNPKG

@atlaskit/editor-common

Version:

A package that contains common classes and components for editor and renderer

52 lines 1.85 kB
import React, { useMemo } from 'react'; import { ResourcedEmoji } from '@atlaskit/emoji/element'; var EmojiNodeFunctional = function EmojiNodeFunctional(props) { var _resourceConfig$optim; var allowTextFallback = props.allowTextFallback, shortName = props.shortName, id = props.id, fallback = props.fallback, fitToHeight = props.fitToHeight, showTooltip = props.showTooltip, resourceConfig = props.resourceConfig, emojiProvider = props.emojiProvider; var emojiId = useMemo(function () { return { shortName: shortName, id: id, fallback: fallback }; }, [shortName, id, fallback]); var emojiProviderResolver = useMemo(function () { return Promise.resolve(emojiProvider); }, [emojiProvider]); if (allowTextFallback && !emojiProvider) { return /*#__PURE__*/React.createElement("span", { "data-emoji-id": id, "data-emoji-short-name": shortName, "data-emoji-text": fallback || shortName }, fallback || shortName); } if (!emojiProvider) { return null; } return /*#__PURE__*/React.createElement(ResourcedEmoji, { emojiId: emojiId, emojiProvider: emojiProviderResolver, 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 }); }; var EmojiNode = function EmojiNode(props) { // Ignored via go/ees005 // eslint-disable-next-line react/jsx-props-no-spreading return /*#__PURE__*/React.createElement(EmojiNodeFunctional, props); }; export default /*#__PURE__*/React.memo(EmojiNode);