UNPKG

@atlaskit/renderer

Version:
115 lines 5.14 kB
import _classCallCheck from "@babel/runtime/helpers/classCallCheck"; import _createClass from "@babel/runtime/helpers/createClass"; import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn"; import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf"; import _inherits from "@babel/runtime/helpers/inherits"; import _defineProperty from "@babel/runtime/helpers/defineProperty"; function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(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; })(); } import { isSafeUrl } from '@atlaskit/adf-schema'; import Link from '@atlaskit/link'; import { LazyLoadedDatasourceRenderFailedAnalyticsWrapper } from '@atlaskit/link-datasource'; import React from 'react'; import { InlineCard } from './'; // Ignored via go/ees005 // eslint-disable-next-line @repo/internal/react/no-class-components export var CardErrorBoundary = /*#__PURE__*/function (_React$PureComponent) { function CardErrorBoundary() { var _this; _classCallCheck(this, CardErrorBoundary); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _callSuper(this, CardErrorBoundary, [].concat(args)); _defineProperty(_this, "state", { isError: false, error: null }); _defineProperty(_this, "onClickFallback", function (e) { var _this$props = _this.props, onClick = _this$props.onClick, url = _this$props.url; e.preventDefault(); if (onClick) { onClick(e, url); } }); return _this; } _inherits(CardErrorBoundary, _React$PureComponent); return _createClass(CardErrorBoundary, [{ key: "render", value: function render() { if (this.state.isError) { var _this$props2 = this.props, url = _this$props2.url, isDatasource = _this$props2.isDatasource, UnsupportedComponent = _this$props2.unsupportedComponent, datasourceId = _this$props2.datasourceId, onSetLinkTarget = _this$props2.onSetLinkTarget; if (url) { var actualTarget; if (onSetLinkTarget) { try { actualTarget = onSetLinkTarget(url); } catch (_unused) { // If URL parsing fails, use the original target } } var linkProps = _objectSpread({ href: url, onClick: this.onClickFallback }, actualTarget === '_blank' && { target: '_blank', rel: 'noreferrer noopener' }); var fallback = /*#__PURE__*/React.createElement(Link, { href: linkProps.href, onClick: linkProps.onClick, target: linkProps.target, rel: linkProps.rel }, url); if (isDatasource) { if (isSafeUrl(url)) { return /*#__PURE__*/React.createElement(LazyLoadedDatasourceRenderFailedAnalyticsWrapper, { datasourceId: datasourceId, error: this.state.error }, /*#__PURE__*/React.createElement(InlineCard // Ignored via go/ees005 // eslint-disable-next-line react/jsx-props-no-spreading , this.props)); } else { return /*#__PURE__*/React.createElement(LazyLoadedDatasourceRenderFailedAnalyticsWrapper, { datasourceId: datasourceId, error: this.state.error }, fallback); } } else { return fallback; } } else { return /*#__PURE__*/React.createElement(UnsupportedComponent, null); } } return this.props.children; } }, { key: "componentDidCatch", value: function componentDidCatch(_error) { this.setState({ isError: true, error: _error }); } }], [{ key: "getDerivedStateFromError", value: function getDerivedStateFromError(error) { return { isError: true, error: error }; } }]); }(React.PureComponent);