@atlaskit/smart-card 38.19.0 → 38.20.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # @atlaskit/smart-card
2
2
 
3
+ ## 38.20.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [#180349](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/180349)
8
+ [`421881d819fdf`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/421881d819fdf) -
9
+ Add observability to loading state of smart card
10
+
11
+ ## 38.20.0
12
+
13
+ ### Minor Changes
14
+
15
+ - [#175651](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/175651)
16
+ [`ac94e060dd41f`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/ac94e060dd41f) -
17
+ [ux] updated error handling of CardSSR component to use fallback component
18
+
3
19
  ## 38.19.0
4
20
 
5
21
  ### Minor Changes
package/dist/cjs/ssr.js CHANGED
@@ -31,11 +31,16 @@ var CardSSR = exports.CardSSR = function CardSSR(props) {
31
31
  var cardProps = _objectSpread(_objectSpread({}, props), {}, {
32
32
  id: id
33
33
  });
34
+ var ErrorFallbackComponent = cardProps.fallbackComponent;
35
+ var errorBoundaryFallbackComponent = function errorBoundaryFallbackComponent() {
36
+ if (ErrorFallbackComponent) {
37
+ return /*#__PURE__*/_react.default.createElement(ErrorFallbackComponent, null);
38
+ }
39
+ return /*#__PURE__*/_react.default.createElement(_LoadingCardLink.LoadingCardLink, cardProps);
40
+ };
34
41
  return /*#__PURE__*/_react.default.createElement(_analyticsNext.AnalyticsContext, {
35
42
  data: _analytics.context
36
43
  }, /*#__PURE__*/_react.default.createElement(_reactErrorBoundary.ErrorBoundary, {
37
- FallbackComponent: function FallbackComponent() {
38
- return /*#__PURE__*/_react.default.createElement(_LoadingCardLink.LoadingCardLink, cardProps);
39
- }
44
+ FallbackComponent: errorBoundaryFallbackComponent
40
45
  }, /*#__PURE__*/_react.default.createElement(_component.CardWithUrlContent, cardProps)));
41
46
  };
@@ -11,7 +11,7 @@ var ANALYTICS_CHANNEL = exports.ANALYTICS_CHANNEL = 'media';
11
11
  var context = exports.context = {
12
12
  componentName: 'smart-cards',
13
13
  packageName: "@atlaskit/smart-card",
14
- packageVersion: "38.18.0"
14
+ packageVersion: "38.20.0"
15
15
  };
16
16
  var TrackQuickActionType = exports.TrackQuickActionType = /*#__PURE__*/function (TrackQuickActionType) {
17
17
  TrackQuickActionType["StatusUpdate"] = "StatusUpdate";
@@ -8,6 +8,7 @@ exports.BlockCard = void 0;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
9
  var _react = _interopRequireDefault(require("react"));
10
10
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
11
+ var _loadHold = _interopRequireDefault(require("@atlaskit/react-ufo/load-hold"));
11
12
  var _useControlDataExportConfig = require("../../state/hooks/use-control-data-export-config");
12
13
  var _shouldDataExport = require("../../utils/should-data-export");
13
14
  var _utils = require("../common/utils");
@@ -17,21 +18,27 @@ var _ForbiddenView = _interopRequireDefault(require("./views/ForbiddenView"));
17
18
  var _NotFoundView = _interopRequireDefault(require("./views/NotFoundView"));
18
19
  var _ResolvedView = _interopRequireDefault(require("./views/ResolvedView"));
19
20
  var _UnauthorisedView = _interopRequireDefault(require("./views/UnauthorisedView"));
20
- var BlockCard = exports.BlockCard = function BlockCard(_ref) {
21
- var id = _ref.id,
22
- url = _ref.url,
23
- cardState = _ref.cardState,
24
- authFlow = _ref.authFlow,
25
- handleAuthorize = _ref.handleAuthorize,
26
- handleFrameClick = _ref.handleFrameClick,
27
- renderers = _ref.renderers,
28
- isSelected = _ref.isSelected,
29
- onResolve = _ref.onResolve,
30
- onError = _ref.onError,
31
- testId = _ref.testId,
32
- actionOptions = _ref.actionOptions,
33
- CompetitorPrompt = _ref.CompetitorPrompt,
34
- hideIconLoadingSkeleton = _ref.hideIconLoadingSkeleton;
21
+ var UFOLoadHoldWrapper = function UFOLoadHoldWrapper(_ref) {
22
+ var children = _ref.children;
23
+ return (0, _platformFeatureFlags.fg)('platform_renderer_blindspots') ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_loadHold.default, {
24
+ name: "smart-card-block-card"
25
+ }), children) : children;
26
+ };
27
+ var BlockCard = exports.BlockCard = function BlockCard(_ref2) {
28
+ var id = _ref2.id,
29
+ url = _ref2.url,
30
+ cardState = _ref2.cardState,
31
+ authFlow = _ref2.authFlow,
32
+ handleAuthorize = _ref2.handleAuthorize,
33
+ handleFrameClick = _ref2.handleFrameClick,
34
+ renderers = _ref2.renderers,
35
+ isSelected = _ref2.isSelected,
36
+ onResolve = _ref2.onResolve,
37
+ onError = _ref2.onError,
38
+ testId = _ref2.testId,
39
+ actionOptions = _ref2.actionOptions,
40
+ CompetitorPrompt = _ref2.CompetitorPrompt,
41
+ hideIconLoadingSkeleton = _ref2.hideIconLoadingSkeleton;
35
42
  var status = cardState.status;
36
43
  var blockCardProps = {
37
44
  id: id,
@@ -54,9 +61,9 @@ var BlockCard = exports.BlockCard = function BlockCard(_ref) {
54
61
  switch (status) {
55
62
  case 'pending':
56
63
  case 'resolving':
57
- return /*#__PURE__*/_react.default.createElement(_ResolvedView.default, (0, _extends2.default)({}, blockCardProps, {
64
+ return /*#__PURE__*/_react.default.createElement(UFOLoadHoldWrapper, null, /*#__PURE__*/_react.default.createElement(_ResolvedView.default, (0, _extends2.default)({}, blockCardProps, {
58
65
  testId: "smart-block-resolving-view"
59
- }));
66
+ })));
60
67
  case 'resolved':
61
68
  if ((0, _platformFeatureFlags.fg)('platform_smart_links_controlled_dsp_export_view')) {
62
69
  if ((0, _shouldDataExport.getIsDataExportEnabled)(shouldControlDataExport, cardState.details)) {
@@ -9,6 +9,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
9
9
  var _react = _interopRequireDefault(require("react"));
10
10
  var _analyticsNext = require("@atlaskit/analytics-next");
11
11
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
12
+ var _loadHold = _interopRequireDefault(require("@atlaskit/react-ufo/load-hold"));
12
13
  var _extractAccessContext = require("../../extractors/common/context/extractAccessContext");
13
14
  var _embed = require("../../extractors/embed");
14
15
  var _inline = require("../../extractors/inline");
@@ -23,26 +24,32 @@ var _forbiddenView = _interopRequireDefault(require("./views/forbidden-view"));
23
24
  var _notFoundView = _interopRequireDefault(require("./views/not-found-view"));
24
25
  var _ResolvedView3 = require("./views/ResolvedView");
25
26
  var _unauthorizedView = _interopRequireDefault(require("./views/unauthorized-view"));
26
- var EmbedCard = exports.EmbedCard = /*#__PURE__*/_react.default.forwardRef(function (_ref, iframeRef) {
27
+ var UFOLoadHoldWrapper = function UFOLoadHoldWrapper(_ref) {
28
+ var children = _ref.children;
29
+ return (0, _platformFeatureFlags.fg)('platform_renderer_blindspots') ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_loadHold.default, {
30
+ name: "smart-card-embed-card"
31
+ }), children) : children;
32
+ };
33
+ var EmbedCard = exports.EmbedCard = /*#__PURE__*/_react.default.forwardRef(function (_ref2, iframeRef) {
27
34
  var _details$meta, _forbiddenViewProps$c, _forbiddenViewProps$c2, _notFoundViewProps$co, _notFoundViewProps$co2;
28
- var url = _ref.url,
29
- cardState = _ref.cardState,
30
- handleAuthorize = _ref.handleAuthorize,
31
- handleErrorRetry = _ref.handleErrorRetry,
32
- handleFrameClick = _ref.handleFrameClick,
33
- isSelected = _ref.isSelected,
34
- frameStyle = _ref.frameStyle,
35
- platform = _ref.platform,
36
- onResolve = _ref.onResolve,
37
- onError = _ref.onError,
38
- testId = _ref.testId,
39
- inheritDimensions = _ref.inheritDimensions,
40
- onIframeDwell = _ref.onIframeDwell,
41
- onIframeFocus = _ref.onIframeFocus,
42
- iframeUrlType = _ref.iframeUrlType,
43
- actionOptions = _ref.actionOptions,
44
- renderers = _ref.renderers,
45
- CompetitorPrompt = _ref.CompetitorPrompt;
35
+ var url = _ref2.url,
36
+ cardState = _ref2.cardState,
37
+ handleAuthorize = _ref2.handleAuthorize,
38
+ handleErrorRetry = _ref2.handleErrorRetry,
39
+ handleFrameClick = _ref2.handleFrameClick,
40
+ isSelected = _ref2.isSelected,
41
+ frameStyle = _ref2.frameStyle,
42
+ platform = _ref2.platform,
43
+ onResolve = _ref2.onResolve,
44
+ onError = _ref2.onError,
45
+ testId = _ref2.testId,
46
+ inheritDimensions = _ref2.inheritDimensions,
47
+ onIframeDwell = _ref2.onIframeDwell,
48
+ onIframeFocus = _ref2.onIframeFocus,
49
+ iframeUrlType = _ref2.iframeUrlType,
50
+ actionOptions = _ref2.actionOptions,
51
+ renderers = _ref2.renderers,
52
+ CompetitorPrompt = _ref2.CompetitorPrompt;
46
53
  var _useAnalyticsEvents = (0, _analyticsNext.useAnalyticsEvents)(),
47
54
  createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent;
48
55
  var status = cardState.status,
@@ -55,7 +62,7 @@ var EmbedCard = exports.EmbedCard = /*#__PURE__*/_react.default.forwardRef(funct
55
62
  switch (status) {
56
63
  case 'pending':
57
64
  case 'resolving':
58
- return /*#__PURE__*/_react.default.createElement(_ResolvedView.default, {
65
+ return /*#__PURE__*/_react.default.createElement(UFOLoadHoldWrapper, null, /*#__PURE__*/_react.default.createElement(_ResolvedView.default, {
59
66
  url: url,
60
67
  cardState: cardState,
61
68
  onClick: handleFrameClick,
@@ -64,7 +71,7 @@ var EmbedCard = exports.EmbedCard = /*#__PURE__*/_react.default.forwardRef(funct
64
71
  renderers: renderers,
65
72
  actionOptions: actionOptions,
66
73
  testId: testId ? "".concat(testId, "-resolving-view") : 'embed-card-resolving-view'
67
- });
74
+ }));
68
75
  case 'resolved':
69
76
  var resolvedViewProps = (0, _embed.extractEmbedProps)(details, platform, iframeUrlType);
70
77
  if (onResolve) {
@@ -40,6 +40,8 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
40
40
  var _react = _interopRequireWildcard(require("react"));
41
41
  var _analyticsNext = require("@atlaskit/analytics-next");
42
42
  var _linkExtractors = require("@atlaskit/link-extractors");
43
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
44
+ var _loadHold = _interopRequireDefault(require("@atlaskit/react-ufo/load-hold"));
43
45
  var _constants = require("../../constants");
44
46
  var _extractAccessContext = require("../../extractors/common/context/extractAccessContext");
45
47
  var _inline = require("../../extractors/inline");
@@ -52,26 +54,32 @@ var _ResolvedView = require("./ResolvedView");
52
54
  var _ResolvingView = require("./ResolvingView");
53
55
  var _UnauthorisedView = require("./UnauthorisedView");
54
56
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
55
- var InlineCard = exports.InlineCard = function InlineCard(_ref) {
57
+ var UFOLoadHoldWrapper = function UFOLoadHoldWrapper(_ref) {
58
+ var children = _ref.children;
59
+ return (0, _platformFeatureFlags.fg)('platform_renderer_blindspots') ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_loadHold.default, {
60
+ name: "smart-card-inline-card"
61
+ }), children) : children;
62
+ };
63
+ var InlineCard = exports.InlineCard = function InlineCard(_ref2) {
56
64
  var _details$meta, _providerForbidden$te;
57
- var id = _ref.id,
58
- url = _ref.url,
59
- cardState = _ref.cardState,
60
- handleAuthorize = _ref.handleAuthorize,
61
- handleFrameClick = _ref.handleFrameClick,
62
- isSelected = _ref.isSelected,
63
- isHovered = _ref.isHovered,
64
- renderers = _ref.renderers,
65
- onResolve = _ref.onResolve,
66
- onError = _ref.onError,
67
- testId = _ref.testId,
68
- inlinePreloaderStyle = _ref.inlinePreloaderStyle,
69
- showHoverPreview = _ref.showHoverPreview,
70
- hoverPreviewOptions = _ref.hoverPreviewOptions,
71
- actionOptions = _ref.actionOptions,
72
- removeTextHighlightingFromTitle = _ref.removeTextHighlightingFromTitle,
73
- resolvingPlaceholder = _ref.resolvingPlaceholder,
74
- truncateInline = _ref.truncateInline;
65
+ var id = _ref2.id,
66
+ url = _ref2.url,
67
+ cardState = _ref2.cardState,
68
+ handleAuthorize = _ref2.handleAuthorize,
69
+ handleFrameClick = _ref2.handleFrameClick,
70
+ isSelected = _ref2.isSelected,
71
+ isHovered = _ref2.isHovered,
72
+ renderers = _ref2.renderers,
73
+ onResolve = _ref2.onResolve,
74
+ onError = _ref2.onError,
75
+ testId = _ref2.testId,
76
+ inlinePreloaderStyle = _ref2.inlinePreloaderStyle,
77
+ showHoverPreview = _ref2.showHoverPreview,
78
+ hoverPreviewOptions = _ref2.hoverPreviewOptions,
79
+ actionOptions = _ref2.actionOptions,
80
+ removeTextHighlightingFromTitle = _ref2.removeTextHighlightingFromTitle,
81
+ resolvingPlaceholder = _ref2.resolvingPlaceholder,
82
+ truncateInline = _ref2.truncateInline;
75
83
  var _useAnalyticsEvents = (0, _analyticsNext.useAnalyticsEvents)(),
76
84
  createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent;
77
85
  var status = cardState.status,
@@ -104,7 +112,7 @@ var InlineCard = exports.InlineCard = function InlineCard(_ref) {
104
112
  switch (status) {
105
113
  case 'pending':
106
114
  case 'resolving':
107
- return /*#__PURE__*/_react.default.createElement(_ResolvingView.InlineCardResolvingView, {
115
+ return /*#__PURE__*/_react.default.createElement(UFOLoadHoldWrapper, null, /*#__PURE__*/_react.default.createElement(_ResolvingView.InlineCardResolvingView, {
108
116
  url: url,
109
117
  isSelected: isSelected,
110
118
  onClick: handleFrameClick,
@@ -112,7 +120,7 @@ var InlineCard = exports.InlineCard = function InlineCard(_ref) {
112
120
  inlinePreloaderStyle: inlinePreloaderStyle,
113
121
  resolvingPlaceholder: resolvingPlaceholder,
114
122
  truncateInline: truncateInline
115
- });
123
+ }));
116
124
  case 'resolved':
117
125
  return /*#__PURE__*/_react.default.createElement(_ResolvedView.InlineCardResolvedView, (0, _extends2.default)({}, resolvedProps, {
118
126
  id: id,
@@ -20,7 +20,7 @@ var _excluded = ["href", "children", "checkSafety", "onClick", "testId", "isLink
20
20
  _excluded2 = ["isLinkSafe", "showSafetyWarningModal"];
21
21
  var PACKAGE_DATA = {
22
22
  packageName: "@atlaskit/smart-card",
23
- packageVersion: "38.18.0",
23
+ packageVersion: "38.20.0",
24
24
  componentName: 'linkUrl'
25
25
  };
26
26
  var Anchor = (0, _click.withLinkClickedEvent)('a');
@@ -17,9 +17,16 @@ export const CardSSR = props => {
17
17
  ...props,
18
18
  id
19
19
  };
20
+ const ErrorFallbackComponent = cardProps.fallbackComponent;
21
+ const errorBoundaryFallbackComponent = () => {
22
+ if (ErrorFallbackComponent) {
23
+ return /*#__PURE__*/React.createElement(ErrorFallbackComponent, null);
24
+ }
25
+ return /*#__PURE__*/React.createElement(LoadingCardLink, cardProps);
26
+ };
20
27
  return /*#__PURE__*/React.createElement(AnalyticsContext, {
21
28
  data: context
22
29
  }, /*#__PURE__*/React.createElement(ErrorBoundary, {
23
- FallbackComponent: () => /*#__PURE__*/React.createElement(LoadingCardLink, cardProps)
30
+ FallbackComponent: errorBoundaryFallbackComponent
24
31
  }, /*#__PURE__*/React.createElement(CardWithUrlContent, cardProps)));
25
32
  };
@@ -2,7 +2,7 @@ export const ANALYTICS_CHANNEL = 'media';
2
2
  export const context = {
3
3
  componentName: 'smart-cards',
4
4
  packageName: "@atlaskit/smart-card",
5
- packageVersion: "38.18.0"
5
+ packageVersion: "38.20.0"
6
6
  };
7
7
  export let TrackQuickActionType = /*#__PURE__*/function (TrackQuickActionType) {
8
8
  TrackQuickActionType["StatusUpdate"] = "StatusUpdate";
@@ -1,6 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import React from 'react';
3
3
  import { fg } from '@atlaskit/platform-feature-flags';
4
+ import UFOHoldLoad from '@atlaskit/react-ufo/load-hold';
4
5
  import { useControlDataExportConfig } from '../../state/hooks/use-control-data-export-config';
5
6
  import { getIsDataExportEnabled } from '../../utils/should-data-export';
6
7
  import { handleClickCommon } from '../common/utils';
@@ -10,6 +11,13 @@ import ForbiddenView from './views/ForbiddenView';
10
11
  import NotFoundView from './views/NotFoundView';
11
12
  import ResolvedView from './views/ResolvedView';
12
13
  import UnauthorisedView from './views/UnauthorisedView';
14
+ const UFOLoadHoldWrapper = ({
15
+ children
16
+ }) => {
17
+ return fg('platform_renderer_blindspots') ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(UFOHoldLoad, {
18
+ name: "smart-card-block-card"
19
+ }), children) : children;
20
+ };
13
21
  export const BlockCard = ({
14
22
  id,
15
23
  url,
@@ -48,9 +56,9 @@ export const BlockCard = ({
48
56
  switch (status) {
49
57
  case 'pending':
50
58
  case 'resolving':
51
- return /*#__PURE__*/React.createElement(ResolvedView, _extends({}, blockCardProps, {
59
+ return /*#__PURE__*/React.createElement(UFOLoadHoldWrapper, null, /*#__PURE__*/React.createElement(ResolvedView, _extends({}, blockCardProps, {
52
60
  testId: "smart-block-resolving-view"
53
- }));
61
+ })));
54
62
  case 'resolved':
55
63
  if (fg('platform_smart_links_controlled_dsp_export_view')) {
56
64
  if (getIsDataExportEnabled(shouldControlDataExport, cardState.details)) {
@@ -2,6 +2,7 @@ import _extends from "@babel/runtime/helpers/extends";
2
2
  import React from 'react';
3
3
  import { useAnalyticsEvents } from '@atlaskit/analytics-next';
4
4
  import { fg } from '@atlaskit/platform-feature-flags';
5
+ import UFOHoldLoad from '@atlaskit/react-ufo/load-hold';
5
6
  import { extractRequestAccessContextImproved } from '../../extractors/common/context/extractAccessContext';
6
7
  import { extractEmbedProps } from '../../extractors/embed';
7
8
  import { extractInlineProps } from '../../extractors/inline';
@@ -16,6 +17,13 @@ import ForbiddenView from './views/forbidden-view';
16
17
  import NotFoundView from './views/not-found-view';
17
18
  import { EmbedCardResolvedView } from './views/ResolvedView';
18
19
  import UnauthorizedView from './views/unauthorized-view';
20
+ const UFOLoadHoldWrapper = ({
21
+ children
22
+ }) => {
23
+ return fg('platform_renderer_blindspots') ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(UFOHoldLoad, {
24
+ name: "smart-card-embed-card"
25
+ }), children) : children;
26
+ };
19
27
  export const EmbedCard = /*#__PURE__*/React.forwardRef(({
20
28
  url,
21
29
  cardState,
@@ -52,7 +60,7 @@ export const EmbedCard = /*#__PURE__*/React.forwardRef(({
52
60
  switch (status) {
53
61
  case 'pending':
54
62
  case 'resolving':
55
- return /*#__PURE__*/React.createElement(BlockCardResolvedView, {
63
+ return /*#__PURE__*/React.createElement(UFOLoadHoldWrapper, null, /*#__PURE__*/React.createElement(BlockCardResolvedView, {
56
64
  url: url,
57
65
  cardState: cardState,
58
66
  onClick: handleFrameClick,
@@ -61,7 +69,7 @@ export const EmbedCard = /*#__PURE__*/React.forwardRef(({
61
69
  renderers: renderers,
62
70
  actionOptions: actionOptions,
63
71
  testId: testId ? `${testId}-resolving-view` : 'embed-card-resolving-view'
64
- });
72
+ }));
65
73
  case 'resolved':
66
74
  const resolvedViewProps = extractEmbedProps(details, platform, iframeUrlType);
67
75
  if (onResolve) {
@@ -2,6 +2,8 @@ import _extends from "@babel/runtime/helpers/extends";
2
2
  import React, { useEffect } from 'react';
3
3
  import { useAnalyticsEvents } from '@atlaskit/analytics-next';
4
4
  import { extractSmartLinkProvider } from '@atlaskit/link-extractors';
5
+ import { fg } from '@atlaskit/platform-feature-flags';
6
+ import UFOHoldLoad from '@atlaskit/react-ufo/load-hold';
5
7
  import { SmartLinkStatus } from '../../constants';
6
8
  import { extractRequestAccessContextImproved } from '../../extractors/common/context/extractAccessContext';
7
9
  import { extractInlineProps } from '../../extractors/inline';
@@ -14,6 +16,13 @@ import { InlineCardResolvedView } from './ResolvedView';
14
16
  import { InlineCardResolvingView } from './ResolvingView';
15
17
  import { InlineCardUnauthorizedView } from './UnauthorisedView';
16
18
  export { InlineCardResolvedView, InlineCardResolvingView, InlineCardErroredView, InlineCardForbiddenView, InlineCardUnauthorizedView };
19
+ const UFOLoadHoldWrapper = ({
20
+ children
21
+ }) => {
22
+ return fg('platform_renderer_blindspots') ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(UFOHoldLoad, {
23
+ name: "smart-card-inline-card"
24
+ }), children) : children;
25
+ };
17
26
  export const InlineCard = ({
18
27
  id,
19
28
  url,
@@ -70,7 +79,7 @@ export const InlineCard = ({
70
79
  switch (status) {
71
80
  case 'pending':
72
81
  case 'resolving':
73
- return /*#__PURE__*/React.createElement(InlineCardResolvingView, {
82
+ return /*#__PURE__*/React.createElement(UFOLoadHoldWrapper, null, /*#__PURE__*/React.createElement(InlineCardResolvingView, {
74
83
  url: url,
75
84
  isSelected: isSelected,
76
85
  onClick: handleFrameClick,
@@ -78,7 +87,7 @@ export const InlineCard = ({
78
87
  inlinePreloaderStyle: inlinePreloaderStyle,
79
88
  resolvingPlaceholder: resolvingPlaceholder,
80
89
  truncateInline: truncateInline
81
- });
90
+ }));
82
91
  case 'resolved':
83
92
  return /*#__PURE__*/React.createElement(InlineCardResolvedView, _extends({}, resolvedProps, {
84
93
  id: id,
@@ -10,7 +10,7 @@ import LinkWarningModal from './LinkWarningModal';
10
10
  import { useLinkWarningModal } from './LinkWarningModal/hooks/use-link-warning-modal';
11
11
  const PACKAGE_DATA = {
12
12
  packageName: "@atlaskit/smart-card",
13
- packageVersion: "38.18.0",
13
+ packageVersion: "38.20.0",
14
14
  componentName: 'linkUrl'
15
15
  };
16
16
  const Anchor = withLinkClickedEvent('a');
package/dist/esm/ssr.js CHANGED
@@ -22,11 +22,16 @@ export var CardSSR = function CardSSR(props) {
22
22
  var cardProps = _objectSpread(_objectSpread({}, props), {}, {
23
23
  id: id
24
24
  });
25
+ var ErrorFallbackComponent = cardProps.fallbackComponent;
26
+ var errorBoundaryFallbackComponent = function errorBoundaryFallbackComponent() {
27
+ if (ErrorFallbackComponent) {
28
+ return /*#__PURE__*/React.createElement(ErrorFallbackComponent, null);
29
+ }
30
+ return /*#__PURE__*/React.createElement(LoadingCardLink, cardProps);
31
+ };
25
32
  return /*#__PURE__*/React.createElement(AnalyticsContext, {
26
33
  data: context
27
34
  }, /*#__PURE__*/React.createElement(ErrorBoundary, {
28
- FallbackComponent: function FallbackComponent() {
29
- return /*#__PURE__*/React.createElement(LoadingCardLink, cardProps);
30
- }
35
+ FallbackComponent: errorBoundaryFallbackComponent
31
36
  }, /*#__PURE__*/React.createElement(CardWithUrlContent, cardProps)));
32
37
  };
@@ -4,7 +4,7 @@ export var ANALYTICS_CHANNEL = 'media';
4
4
  export var context = {
5
5
  componentName: 'smart-cards',
6
6
  packageName: "@atlaskit/smart-card",
7
- packageVersion: "38.18.0"
7
+ packageVersion: "38.20.0"
8
8
  };
9
9
  export var TrackQuickActionType = /*#__PURE__*/function (TrackQuickActionType) {
10
10
  TrackQuickActionType["StatusUpdate"] = "StatusUpdate";
@@ -1,6 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import React from 'react';
3
3
  import { fg } from '@atlaskit/platform-feature-flags';
4
+ import UFOHoldLoad from '@atlaskit/react-ufo/load-hold';
4
5
  import { useControlDataExportConfig } from '../../state/hooks/use-control-data-export-config';
5
6
  import { getIsDataExportEnabled } from '../../utils/should-data-export';
6
7
  import { handleClickCommon } from '../common/utils';
@@ -10,21 +11,27 @@ import ForbiddenView from './views/ForbiddenView';
10
11
  import NotFoundView from './views/NotFoundView';
11
12
  import ResolvedView from './views/ResolvedView';
12
13
  import UnauthorisedView from './views/UnauthorisedView';
13
- export var BlockCard = function BlockCard(_ref) {
14
- var id = _ref.id,
15
- url = _ref.url,
16
- cardState = _ref.cardState,
17
- authFlow = _ref.authFlow,
18
- handleAuthorize = _ref.handleAuthorize,
19
- handleFrameClick = _ref.handleFrameClick,
20
- renderers = _ref.renderers,
21
- isSelected = _ref.isSelected,
22
- onResolve = _ref.onResolve,
23
- onError = _ref.onError,
24
- testId = _ref.testId,
25
- actionOptions = _ref.actionOptions,
26
- CompetitorPrompt = _ref.CompetitorPrompt,
27
- hideIconLoadingSkeleton = _ref.hideIconLoadingSkeleton;
14
+ var UFOLoadHoldWrapper = function UFOLoadHoldWrapper(_ref) {
15
+ var children = _ref.children;
16
+ return fg('platform_renderer_blindspots') ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(UFOHoldLoad, {
17
+ name: "smart-card-block-card"
18
+ }), children) : children;
19
+ };
20
+ export var BlockCard = function BlockCard(_ref2) {
21
+ var id = _ref2.id,
22
+ url = _ref2.url,
23
+ cardState = _ref2.cardState,
24
+ authFlow = _ref2.authFlow,
25
+ handleAuthorize = _ref2.handleAuthorize,
26
+ handleFrameClick = _ref2.handleFrameClick,
27
+ renderers = _ref2.renderers,
28
+ isSelected = _ref2.isSelected,
29
+ onResolve = _ref2.onResolve,
30
+ onError = _ref2.onError,
31
+ testId = _ref2.testId,
32
+ actionOptions = _ref2.actionOptions,
33
+ CompetitorPrompt = _ref2.CompetitorPrompt,
34
+ hideIconLoadingSkeleton = _ref2.hideIconLoadingSkeleton;
28
35
  var status = cardState.status;
29
36
  var blockCardProps = {
30
37
  id: id,
@@ -47,9 +54,9 @@ export var BlockCard = function BlockCard(_ref) {
47
54
  switch (status) {
48
55
  case 'pending':
49
56
  case 'resolving':
50
- return /*#__PURE__*/React.createElement(ResolvedView, _extends({}, blockCardProps, {
57
+ return /*#__PURE__*/React.createElement(UFOLoadHoldWrapper, null, /*#__PURE__*/React.createElement(ResolvedView, _extends({}, blockCardProps, {
51
58
  testId: "smart-block-resolving-view"
52
- }));
59
+ })));
53
60
  case 'resolved':
54
61
  if (fg('platform_smart_links_controlled_dsp_export_view')) {
55
62
  if (getIsDataExportEnabled(shouldControlDataExport, cardState.details)) {
@@ -2,6 +2,7 @@ import _extends from "@babel/runtime/helpers/extends";
2
2
  import React from 'react';
3
3
  import { useAnalyticsEvents } from '@atlaskit/analytics-next';
4
4
  import { fg } from '@atlaskit/platform-feature-flags';
5
+ import UFOHoldLoad from '@atlaskit/react-ufo/load-hold';
5
6
  import { extractRequestAccessContextImproved } from '../../extractors/common/context/extractAccessContext';
6
7
  import { extractEmbedProps } from '../../extractors/embed';
7
8
  import { extractInlineProps } from '../../extractors/inline';
@@ -16,26 +17,32 @@ import ForbiddenView from './views/forbidden-view';
16
17
  import NotFoundView from './views/not-found-view';
17
18
  import { EmbedCardResolvedView } from './views/ResolvedView';
18
19
  import UnauthorizedView from './views/unauthorized-view';
19
- export var EmbedCard = /*#__PURE__*/React.forwardRef(function (_ref, iframeRef) {
20
+ var UFOLoadHoldWrapper = function UFOLoadHoldWrapper(_ref) {
21
+ var children = _ref.children;
22
+ return fg('platform_renderer_blindspots') ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(UFOHoldLoad, {
23
+ name: "smart-card-embed-card"
24
+ }), children) : children;
25
+ };
26
+ export var EmbedCard = /*#__PURE__*/React.forwardRef(function (_ref2, iframeRef) {
20
27
  var _details$meta, _forbiddenViewProps$c, _forbiddenViewProps$c2, _notFoundViewProps$co, _notFoundViewProps$co2;
21
- var url = _ref.url,
22
- cardState = _ref.cardState,
23
- handleAuthorize = _ref.handleAuthorize,
24
- handleErrorRetry = _ref.handleErrorRetry,
25
- handleFrameClick = _ref.handleFrameClick,
26
- isSelected = _ref.isSelected,
27
- frameStyle = _ref.frameStyle,
28
- platform = _ref.platform,
29
- onResolve = _ref.onResolve,
30
- onError = _ref.onError,
31
- testId = _ref.testId,
32
- inheritDimensions = _ref.inheritDimensions,
33
- onIframeDwell = _ref.onIframeDwell,
34
- onIframeFocus = _ref.onIframeFocus,
35
- iframeUrlType = _ref.iframeUrlType,
36
- actionOptions = _ref.actionOptions,
37
- renderers = _ref.renderers,
38
- CompetitorPrompt = _ref.CompetitorPrompt;
28
+ var url = _ref2.url,
29
+ cardState = _ref2.cardState,
30
+ handleAuthorize = _ref2.handleAuthorize,
31
+ handleErrorRetry = _ref2.handleErrorRetry,
32
+ handleFrameClick = _ref2.handleFrameClick,
33
+ isSelected = _ref2.isSelected,
34
+ frameStyle = _ref2.frameStyle,
35
+ platform = _ref2.platform,
36
+ onResolve = _ref2.onResolve,
37
+ onError = _ref2.onError,
38
+ testId = _ref2.testId,
39
+ inheritDimensions = _ref2.inheritDimensions,
40
+ onIframeDwell = _ref2.onIframeDwell,
41
+ onIframeFocus = _ref2.onIframeFocus,
42
+ iframeUrlType = _ref2.iframeUrlType,
43
+ actionOptions = _ref2.actionOptions,
44
+ renderers = _ref2.renderers,
45
+ CompetitorPrompt = _ref2.CompetitorPrompt;
39
46
  var _useAnalyticsEvents = useAnalyticsEvents(),
40
47
  createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent;
41
48
  var status = cardState.status,
@@ -48,7 +55,7 @@ export var EmbedCard = /*#__PURE__*/React.forwardRef(function (_ref, iframeRef)
48
55
  switch (status) {
49
56
  case 'pending':
50
57
  case 'resolving':
51
- return /*#__PURE__*/React.createElement(BlockCardResolvedView, {
58
+ return /*#__PURE__*/React.createElement(UFOLoadHoldWrapper, null, /*#__PURE__*/React.createElement(BlockCardResolvedView, {
52
59
  url: url,
53
60
  cardState: cardState,
54
61
  onClick: handleFrameClick,
@@ -57,7 +64,7 @@ export var EmbedCard = /*#__PURE__*/React.forwardRef(function (_ref, iframeRef)
57
64
  renderers: renderers,
58
65
  actionOptions: actionOptions,
59
66
  testId: testId ? "".concat(testId, "-resolving-view") : 'embed-card-resolving-view'
60
- });
67
+ }));
61
68
  case 'resolved':
62
69
  var resolvedViewProps = extractEmbedProps(details, platform, iframeUrlType);
63
70
  if (onResolve) {
@@ -2,6 +2,8 @@ import _extends from "@babel/runtime/helpers/extends";
2
2
  import React, { useEffect } from 'react';
3
3
  import { useAnalyticsEvents } from '@atlaskit/analytics-next';
4
4
  import { extractSmartLinkProvider } from '@atlaskit/link-extractors';
5
+ import { fg } from '@atlaskit/platform-feature-flags';
6
+ import UFOHoldLoad from '@atlaskit/react-ufo/load-hold';
5
7
  import { SmartLinkStatus } from '../../constants';
6
8
  import { extractRequestAccessContextImproved } from '../../extractors/common/context/extractAccessContext';
7
9
  import { extractInlineProps } from '../../extractors/inline';
@@ -14,26 +16,32 @@ import { InlineCardResolvedView } from './ResolvedView';
14
16
  import { InlineCardResolvingView } from './ResolvingView';
15
17
  import { InlineCardUnauthorizedView } from './UnauthorisedView';
16
18
  export { InlineCardResolvedView, InlineCardResolvingView, InlineCardErroredView, InlineCardForbiddenView, InlineCardUnauthorizedView };
17
- export var InlineCard = function InlineCard(_ref) {
19
+ var UFOLoadHoldWrapper = function UFOLoadHoldWrapper(_ref) {
20
+ var children = _ref.children;
21
+ return fg('platform_renderer_blindspots') ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(UFOHoldLoad, {
22
+ name: "smart-card-inline-card"
23
+ }), children) : children;
24
+ };
25
+ export var InlineCard = function InlineCard(_ref2) {
18
26
  var _details$meta, _providerForbidden$te;
19
- var id = _ref.id,
20
- url = _ref.url,
21
- cardState = _ref.cardState,
22
- handleAuthorize = _ref.handleAuthorize,
23
- handleFrameClick = _ref.handleFrameClick,
24
- isSelected = _ref.isSelected,
25
- isHovered = _ref.isHovered,
26
- renderers = _ref.renderers,
27
- onResolve = _ref.onResolve,
28
- onError = _ref.onError,
29
- testId = _ref.testId,
30
- inlinePreloaderStyle = _ref.inlinePreloaderStyle,
31
- showHoverPreview = _ref.showHoverPreview,
32
- hoverPreviewOptions = _ref.hoverPreviewOptions,
33
- actionOptions = _ref.actionOptions,
34
- removeTextHighlightingFromTitle = _ref.removeTextHighlightingFromTitle,
35
- resolvingPlaceholder = _ref.resolvingPlaceholder,
36
- truncateInline = _ref.truncateInline;
27
+ var id = _ref2.id,
28
+ url = _ref2.url,
29
+ cardState = _ref2.cardState,
30
+ handleAuthorize = _ref2.handleAuthorize,
31
+ handleFrameClick = _ref2.handleFrameClick,
32
+ isSelected = _ref2.isSelected,
33
+ isHovered = _ref2.isHovered,
34
+ renderers = _ref2.renderers,
35
+ onResolve = _ref2.onResolve,
36
+ onError = _ref2.onError,
37
+ testId = _ref2.testId,
38
+ inlinePreloaderStyle = _ref2.inlinePreloaderStyle,
39
+ showHoverPreview = _ref2.showHoverPreview,
40
+ hoverPreviewOptions = _ref2.hoverPreviewOptions,
41
+ actionOptions = _ref2.actionOptions,
42
+ removeTextHighlightingFromTitle = _ref2.removeTextHighlightingFromTitle,
43
+ resolvingPlaceholder = _ref2.resolvingPlaceholder,
44
+ truncateInline = _ref2.truncateInline;
37
45
  var _useAnalyticsEvents = useAnalyticsEvents(),
38
46
  createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent;
39
47
  var status = cardState.status,
@@ -66,7 +74,7 @@ export var InlineCard = function InlineCard(_ref) {
66
74
  switch (status) {
67
75
  case 'pending':
68
76
  case 'resolving':
69
- return /*#__PURE__*/React.createElement(InlineCardResolvingView, {
77
+ return /*#__PURE__*/React.createElement(UFOLoadHoldWrapper, null, /*#__PURE__*/React.createElement(InlineCardResolvingView, {
70
78
  url: url,
71
79
  isSelected: isSelected,
72
80
  onClick: handleFrameClick,
@@ -74,7 +82,7 @@ export var InlineCard = function InlineCard(_ref) {
74
82
  inlinePreloaderStyle: inlinePreloaderStyle,
75
83
  resolvingPlaceholder: resolvingPlaceholder,
76
84
  truncateInline: truncateInline
77
- });
85
+ }));
78
86
  case 'resolved':
79
87
  return /*#__PURE__*/React.createElement(InlineCardResolvedView, _extends({}, resolvedProps, {
80
88
  id: id,
@@ -13,7 +13,7 @@ import LinkWarningModal from './LinkWarningModal';
13
13
  import { useLinkWarningModal } from './LinkWarningModal/hooks/use-link-warning-modal';
14
14
  var PACKAGE_DATA = {
15
15
  packageName: "@atlaskit/smart-card",
16
- packageVersion: "38.18.0",
16
+ packageVersion: "38.20.0",
17
17
  componentName: 'linkUrl'
18
18
  };
19
19
  var Anchor = withLinkClickedEvent('a');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/smart-card",
3
- "version": "38.19.0",
3
+ "version": "38.20.1",
4
4
  "description": "Smart card component",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -20,8 +20,7 @@
20
20
  "team": "Linking Platform",
21
21
  "website": {
22
22
  "name": "Smart Card"
23
- },
24
- "runReact18": true
23
+ }
25
24
  },
26
25
  "scripts": {
27
26
  "analytics:codegen": "yarn workspace @atlassian/analytics-tooling run analytics:codegen smart-card --output ./src/common/analytics/generated"
@@ -54,7 +53,7 @@
54
53
  "@atlaskit/link-test-helpers": "^8.1.0",
55
54
  "@atlaskit/linking-common": "^9.1.0",
56
55
  "@atlaskit/linking-types": "^13.0.0",
57
- "@atlaskit/logo": "^19.4.0",
56
+ "@atlaskit/logo": "^19.5.0",
58
57
  "@atlaskit/lozenge": "^13.0.0",
59
58
  "@atlaskit/menu": "^8.0.0",
60
59
  "@atlaskit/modal-dialog": "^14.2.0",
@@ -174,12 +173,10 @@
174
173
  "type": "boolean"
175
174
  },
176
175
  "platform-visual-refresh-icons-legacy-facade": {
177
- "type": "boolean",
178
- "showOnWebsiteForTransitiveDependencies": true
176
+ "type": "boolean"
179
177
  },
180
178
  "platform-component-visual-refresh": {
181
- "type": "boolean",
182
- "showOnWebsiteForTransitiveDependencies": true
179
+ "type": "boolean"
183
180
  },
184
181
  "bandicoots-smart-card-teamwork-context": {
185
182
  "type": "boolean"
@@ -194,8 +191,7 @@
194
191
  "type": "boolean"
195
192
  },
196
193
  "icon-object-migration": {
197
- "type": "boolean",
198
- "showOnWebsiteForTransitiveDependencies": true
194
+ "type": "boolean"
199
195
  },
200
196
  "platform-linking-visual-refresh-v1": {
201
197
  "type": "boolean"
@@ -225,8 +221,7 @@
225
221
  "type": "boolean"
226
222
  },
227
223
  "platform-smart-card-remove-legacy-button": {
228
- "type": "boolean",
229
- "showOnWebsiteForTransitiveDependencies": true
224
+ "type": "boolean"
230
225
  },
231
226
  "platform-linking-additional-flexible-element-props": {
232
227
  "type": "boolean"
@@ -257,6 +252,9 @@
257
252
  },
258
253
  "platform-linking-user-attributes-component": {
259
254
  "type": "boolean"
255
+ },
256
+ "platform_renderer_blindspots": {
257
+ "type": "boolean"
260
258
  }
261
259
  },
262
260
  "compassUnitTestMetricSourceId": "ari:cloud:compass:a436116f-02ce-4520-8fbb-7301462a1674:metric-source/c5751cc6-3513-4070-9deb-af31e86aed34/f74ef1bc-7240-4aac-9dc8-9dc43b502089"