UNPKG

@atlaskit/editor-common

Version:

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

63 lines (60 loc) 2.37 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.isUnbadgedUrl = exports.ExternalImageBadge = void 0; var _react = _interopRequireDefault(require("react")); var _reactIntlNext = require("react-intl-next"); var _info = _interopRequireDefault(require("@atlaskit/icon/glyph/info")); var _platformFeatureFlags = require("@atlaskit/platform-feature-flags"); var _primitives = require("@atlaskit/primitives"); var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip")); var _media = require("../media"); var baseStyles = (0, _primitives.xcss)({ borderRadius: 'border.radius', backgroundColor: 'elevation.surface', // eslint-disable-next-line @atlaskit/design-system/use-tokens-typography lineHeight: "var(--ds-space-200, 16px)", cursor: 'pointer' }); // On cleanup of 'platform_editor_hide_external_media_badge', make types non-optional var NO_EXTERNAL_BADGE_HOSTS = ['atlassian.com']; var isUnbadgedUrl = exports.isUnbadgedUrl = function isUnbadgedUrl(url) { var hostname; try { var _URL = new URL(url || ''); hostname = _URL.hostname; } catch (e) { // If the URL is invalid (or empty), just carry on showing the badge return false; } return Boolean(hostname && // Do not show badge for atlassian domains and subdomains NO_EXTERNAL_BADGE_HOSTS.some(function (host) { return hostname === host || hostname.endsWith(".".concat(host)); })); }; var ExternalImageBadge = exports.ExternalImageBadge = function ExternalImageBadge(_ref) { var badgeSize = _ref.badgeSize, type = _ref.type, url = _ref.url; var intl = (0, _reactIntlNext.useIntl)(); var message = intl.formatMessage(_media.externalMediaMessages.externalMediaFile); if ((0, _platformFeatureFlags.fg)('platform_editor_hide_external_media_badge')) { if (type !== 'external' || isUnbadgedUrl(url)) { return null; } } return /*#__PURE__*/_react.default.createElement(_primitives.Box, { padding: badgeSize === 'medium' ? 'space.050' : 'space.0', xcss: baseStyles, tabIndex: 0 }, /*#__PURE__*/_react.default.createElement(_tooltip.default, { content: message, position: "top" }, /*#__PURE__*/_react.default.createElement(_info.default, { size: "small", label: message }))); };