@atlaskit/smart-card 42.3.3 → 42.3.5

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.
Files changed (54) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/cjs/messages.js +0 -10
  3. package/dist/cjs/state/actions/index.js +6 -8
  4. package/dist/cjs/state/hooks/useSmartLink.js +3 -3
  5. package/dist/cjs/state/store/index.js +1 -5
  6. package/dist/cjs/utils/analytics/analytics.js +1 -1
  7. package/dist/cjs/view/CardWithUrl/component.js +15 -14
  8. package/dist/cjs/view/FlexibleCard/components/actions/follow-action/index.js +1 -1
  9. package/dist/cjs/view/FlexibleCard/index.js +13 -5
  10. package/dist/cjs/view/LinkUrl/HyperlinkResolver/index.js +3 -26
  11. package/dist/cjs/view/LinkUrl/index.js +23 -30
  12. package/dist/es2019/messages.js +0 -10
  13. package/dist/es2019/state/actions/index.js +4 -6
  14. package/dist/es2019/state/hooks/useSmartLink.js +3 -3
  15. package/dist/es2019/state/store/index.js +1 -5
  16. package/dist/es2019/utils/analytics/analytics.js +1 -1
  17. package/dist/es2019/view/CardWithUrl/component.js +15 -14
  18. package/dist/es2019/view/FlexibleCard/components/actions/follow-action/index.js +1 -1
  19. package/dist/es2019/view/FlexibleCard/index.js +12 -5
  20. package/dist/es2019/view/LinkUrl/HyperlinkResolver/index.js +3 -27
  21. package/dist/es2019/view/LinkUrl/index.js +23 -28
  22. package/dist/esm/messages.js +0 -10
  23. package/dist/esm/state/actions/index.js +6 -8
  24. package/dist/esm/state/hooks/useSmartLink.js +3 -3
  25. package/dist/esm/state/store/index.js +1 -5
  26. package/dist/esm/utils/analytics/analytics.js +1 -1
  27. package/dist/esm/view/CardWithUrl/component.js +15 -14
  28. package/dist/esm/view/FlexibleCard/components/actions/follow-action/index.js +1 -1
  29. package/dist/esm/view/FlexibleCard/index.js +12 -5
  30. package/dist/esm/view/LinkUrl/HyperlinkResolver/index.js +3 -26
  31. package/dist/esm/view/LinkUrl/index.js +23 -28
  32. package/dist/types/messages.d.ts +1 -1
  33. package/dist/types/state/actions/index.d.ts +1 -2
  34. package/dist/types/state/hooks/useSmartLink.d.ts +2 -3
  35. package/dist/types/state/store/index.d.ts +1 -1
  36. package/dist/types/view/FlexibleCard/index.d.ts +13 -1
  37. package/dist/types/view/LinkUrl/HyperlinkResolver/index.d.ts +0 -5
  38. package/dist/types-ts4.5/messages.d.ts +1 -1
  39. package/dist/types-ts4.5/state/actions/index.d.ts +1 -2
  40. package/dist/types-ts4.5/state/hooks/useSmartLink.d.ts +2 -3
  41. package/dist/types-ts4.5/state/store/index.d.ts +1 -1
  42. package/dist/types-ts4.5/view/FlexibleCard/index.d.ts +13 -1
  43. package/dist/types-ts4.5/view/LinkUrl/HyperlinkResolver/index.d.ts +0 -5
  44. package/package.json +5 -8
  45. package/dist/cjs/view/LinkUrl/HyperlinkResolver/error-boundary.js +0 -18
  46. package/dist/cjs/view/LinkUrl/HyperlinkResolver/resolve-hyperlink.js +0 -70
  47. package/dist/es2019/view/LinkUrl/HyperlinkResolver/error-boundary.js +0 -9
  48. package/dist/es2019/view/LinkUrl/HyperlinkResolver/resolve-hyperlink.js +0 -60
  49. package/dist/esm/view/LinkUrl/HyperlinkResolver/error-boundary.js +0 -11
  50. package/dist/esm/view/LinkUrl/HyperlinkResolver/resolve-hyperlink.js +0 -62
  51. package/dist/types/view/LinkUrl/HyperlinkResolver/error-boundary.d.ts +0 -4
  52. package/dist/types/view/LinkUrl/HyperlinkResolver/resolve-hyperlink.d.ts +0 -3
  53. package/dist/types-ts4.5/view/LinkUrl/HyperlinkResolver/error-boundary.d.ts +0 -4
  54. package/dist/types-ts4.5/view/LinkUrl/HyperlinkResolver/resolve-hyperlink.d.ts +0 -3
package/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # @atlaskit/smart-card
2
2
 
3
+ ## 42.3.5
4
+
5
+ ### Patch Changes
6
+
7
+ - [`0f97c81f07f53`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/0f97c81f07f53) -
8
+ Internal logic change for `placeholderData` (unreleased prop) so it's used exclusively for
9
+ rendering purposes.
10
+ - [`2d0bdb4a28fef`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/2d0bdb4a28fef) -
11
+ Feature gate cleanup: navx-1834-refactor-resolved-hyperlink
12
+ - Updated dependencies
13
+
14
+ ## 42.3.4
15
+
16
+ ### Patch Changes
17
+
18
+ - [`be5ef92ed4c0d`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/be5ef92ed4c0d) -
19
+ [ux] Updated Follow space to Follow Project
20
+
3
21
  ## 42.3.3
4
22
 
5
23
  ### Patch Changes
@@ -800,11 +800,6 @@ var messages = exports.messages = (0, _reactIntlNext.defineMessages)({
800
800
  defaultMessage: 'Follow to get notifications on this space',
801
801
  description: 'Description on what Follow does'
802
802
  },
803
- follow_projectGalaxia: {
804
- id: 'fabric.linking.follow_project-galaxia',
805
- defaultMessage: 'Follow space',
806
- description: 'Click to follow a project.'
807
- },
808
803
  follow_project_errorGalaxia: {
809
804
  id: 'fabric.linking.follow_project_error-galaxia',
810
805
  defaultMessage: 'We encountered an error while trying to follow the space. Check your connection or refresh the page and try again.',
@@ -815,11 +810,6 @@ var messages = exports.messages = (0, _reactIntlNext.defineMessages)({
815
810
  defaultMessage: 'Unfollow to stop receiving space notifications',
816
811
  description: 'Description on what Unfollow does'
817
812
  },
818
- unfollow_projectGalaxia: {
819
- id: 'fabric.linking.unfollow_project-galaxia',
820
- defaultMessage: 'Unfollow space',
821
- description: 'Click to unfollow a project.'
822
- },
823
813
  unfollow_project_errorGalaxia: {
824
814
  id: 'fabric.linking.unfollow_project_error-galaxia',
825
815
  defaultMessage: 'We encountered an error while trying to unfollow the space. Check your connection or refresh the page and try again.',
@@ -11,14 +11,13 @@ var _react = require("react");
11
11
  var _linkProvider = require("@atlaskit/link-provider");
12
12
  var _linkingCommon = require("@atlaskit/linking-common");
13
13
  var _outboundAuthFlowClient = require("@atlaskit/outbound-auth-flow-client");
14
- var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
15
14
  var _useAnalyticsEvents2 = require("../../common/analytics/generated/use-analytics-events");
16
15
  var _constants = require("../../constants");
17
16
  var _analytics = require("../analytics");
18
17
  var _helpers = require("../helpers");
19
18
  var _useInvokeClientAction = _interopRequireDefault(require("../hooks/use-invoke-client-action"));
20
19
  var _useResolve = _interopRequireDefault(require("../hooks/use-resolve"));
21
- var useSmartCardActions = exports.useSmartCardActions = function useSmartCardActions(id, url, placeholderData) {
20
+ var useSmartCardActions = exports.useSmartCardActions = function useSmartCardActions(id, url) {
22
21
  var resolveUrl = (0, _useResolve.default)();
23
22
  var invokeClientAction = (0, _useInvokeClientAction.default)({});
24
23
  var _useAnalyticsEvents = (0, _useAnalyticsEvents2.useAnalyticsEvents)(),
@@ -28,9 +27,8 @@ var useSmartCardActions = exports.useSmartCardActions = function useSmartCardAct
28
27
  var getState = store.getState,
29
28
  dispatch = store.dispatch;
30
29
  var getSmartLinkState = (0, _react.useCallback)(function () {
31
- var _ref2, _getState$url;
32
- var placeholderObject = (0, _platformFeatureFlags.fg)('platform_initial_data_for_smart_cards') ? placeholderData : undefined;
33
- var _ref = (_ref2 = (_getState$url = getState()[url]) !== null && _getState$url !== void 0 ? _getState$url : placeholderObject) !== null && _ref2 !== void 0 ? _ref2 : {
30
+ var _getState$url;
31
+ var _ref = (_getState$url = getState()[url]) !== null && _getState$url !== void 0 ? _getState$url : {
34
32
  status: _constants.SmartLinkStatus.Pending
35
33
  },
36
34
  details = _ref.details,
@@ -41,7 +39,7 @@ var useSmartCardActions = exports.useSmartCardActions = function useSmartCardAct
41
39
  status: status,
42
40
  metadataStatus: metadataStatus
43
41
  };
44
- }, [getState, url, placeholderData]);
42
+ }, [getState, url]);
45
43
  var setMetadataStatus = (0, _react.useCallback)(function (metadataStatus) {
46
44
  dispatch((0, _linkingCommon.cardAction)(_linkingCommon.ACTION_UPDATE_METADATA_STATUS, {
47
45
  url: url
@@ -154,7 +152,7 @@ var useSmartCardActions = exports.useSmartCardActions = function useSmartCardAct
154
152
  }
155
153
  }, [getSmartLinkState, id, reload, fireEvent]);
156
154
  var invoke = (0, _react.useCallback)( /*#__PURE__*/function () {
157
- var _ref4 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(opts, appearance) {
155
+ var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(opts, appearance) {
158
156
  var key, action, source;
159
157
  return _regenerator.default.wrap(function _callee2$(_context2) {
160
158
  while (1) switch (_context2.prev = _context2.next) {
@@ -181,7 +179,7 @@ var useSmartCardActions = exports.useSmartCardActions = function useSmartCardAct
181
179
  }, _callee2);
182
180
  }));
183
181
  return function (_x, _x2) {
184
- return _ref4.apply(this, arguments);
182
+ return _ref3.apply(this, arguments);
185
183
  };
186
184
  }(), [invokeClientAction]);
187
185
  return (0, _react.useMemo)(function () {
@@ -12,13 +12,13 @@ var _actions = require("../actions");
12
12
  var _config = require("../config");
13
13
  var _renderers = require("../renderers");
14
14
  var _store = require("../store");
15
- function useSmartLink(id, url, placeholderData) {
16
- var state = (0, _store.useSmartCardState)(url, placeholderData);
15
+ function useSmartLink(id, url) {
16
+ var state = (0, _store.useSmartCardState)(url);
17
17
  var _useSmartLinkContext = (0, _linkProvider.useSmartLinkContext)(),
18
18
  store = _useSmartLinkContext.store,
19
19
  isPreviewPanelAvailable = _useSmartLinkContext.isPreviewPanelAvailable,
20
20
  openPreviewPanel = _useSmartLinkContext.openPreviewPanel;
21
- var actions = (0, _actions.useSmartCardActions)(id, url, placeholderData);
21
+ var actions = (0, _actions.useSmartCardActions)(id, url);
22
22
  var config = (0, _config.useSmartLinkConfig)();
23
23
  var renderers = (0, _renderers.useSmartLinkRenderers)();
24
24
 
@@ -6,18 +6,14 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.useSmartCardState = useSmartCardState;
7
7
  var _withSelector = require("use-sync-external-store/shim/with-selector");
8
8
  var _linkProvider = require("@atlaskit/link-provider");
9
- var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
10
9
  var PENDING_STATE = {
11
10
  status: 'pending'
12
11
  };
13
- function useSmartCardState(url, placeholderData) {
12
+ function useSmartCardState(url) {
14
13
  var _useSmartLinkContext = (0, _linkProvider.useSmartLinkContext)(),
15
14
  store = _useSmartLinkContext.store;
16
15
  var cardState = (0, _withSelector.useSyncExternalStoreWithSelector)(store.subscribe, store.getState, store.getState, function (state) {
17
16
  return state[url];
18
17
  });
19
- if ((0, _platformFeatureFlags.fg)('platform_initial_data_for_smart_cards')) {
20
- return (cardState === null || cardState === void 0 ? void 0 : cardState.status) !== 'resolved' && placeholderData ? placeholderData : cardState !== null && cardState !== void 0 ? cardState : PENDING_STATE;
21
- }
22
18
  return cardState !== null && cardState !== void 0 ? cardState : PENDING_STATE;
23
19
  }
@@ -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: "0.0.0-development"
14
+ packageVersion: "42.3.4"
15
15
  };
16
16
  var TrackQuickActionType = exports.TrackQuickActionType = /*#__PURE__*/function (TrackQuickActionType) {
17
17
  TrackQuickActionType["StatusUpdate"] = "StatusUpdate";
@@ -67,22 +67,9 @@ function Component(_ref) {
67
67
  var isFlexibleUi = (0, _react.useMemo)(function () {
68
68
  return (0, _flexible.isFlexibleUiCard)(children, ui);
69
69
  }, [children, ui]);
70
- var structuredPlaceholderData = (0, _platformFeatureFlags.fg)('platform_initial_data_for_smart_cards') ?
71
- // eslint-disable-next-line react-hooks/rules-of-hooks
72
- (0, _react.useMemo)(function () {
73
- // execute some basic validation logic to ensure we should consider using placeholder data
74
- if (appearance === 'inline' && isValidPlaceholderData(placeholderData)) {
75
- var data = {
76
- status: 'resolved',
77
- metadataStatus: undefined,
78
- details: placeholderData
79
- };
80
- return data;
81
- }
82
- }, [appearance, placeholderData]) : undefined;
83
70
 
84
71
  // Get state, actions for this card.
85
- var _useSmartLink = (0, _state.useSmartLink)(id, url, (0, _platformFeatureFlags.fg)('platform_initial_data_for_smart_cards') ? structuredPlaceholderData : undefined),
72
+ var _useSmartLink = (0, _state.useSmartLink)(id, url),
86
73
  state = _useSmartLink.state,
87
74
  actions = _useSmartLink.actions,
88
75
  config = _useSmartLink.config,
@@ -242,6 +229,19 @@ function Component(_ref) {
242
229
  display: isFlexibleUi ? 'flexible' : appearance
243
230
  });
244
231
  }, [id, appearance, definitionId, isFlexibleUi, fireEvent]);
232
+ var structuredPlaceholderData = (0, _platformFeatureFlags.fg)('platform_initial_data_for_smart_cards') ?
233
+ // eslint-disable-next-line react-hooks/rules-of-hooks
234
+ (0, _react.useMemo)(function () {
235
+ // execute some basic validation logic to ensure we should consider using placeholder data
236
+ if (isFlexibleUi && isValidPlaceholderData(placeholderData)) {
237
+ var data = {
238
+ status: 'resolved',
239
+ metadataStatus: undefined,
240
+ details: placeholderData
241
+ };
242
+ return data;
243
+ }
244
+ }, [isFlexibleUi, placeholderData]) : undefined;
245
245
  if (isFlexibleUi) {
246
246
  var cardState = state;
247
247
  if (error) {
@@ -256,6 +256,7 @@ function Component(_ref) {
256
256
  return /*#__PURE__*/_react.default.createElement(_FlexibleCard.default, {
257
257
  id: id,
258
258
  cardState: cardState,
259
+ placeholderData: (0, _platformFeatureFlags.fg)('platform_initial_data_for_smart_cards') ? structuredPlaceholderData : undefined,
259
260
  onAuthorize: services.length && handleAuthorize || undefined,
260
261
  onClick: handleClickWrapper,
261
262
  origin: "smartLinkCard",
@@ -60,7 +60,7 @@ var FollowAction = function FollowAction(props) {
60
60
  data = (0, _objectWithoutProperties2.default)(actionData, _excluded);
61
61
  var isStackItem = props.as === 'stack-item';
62
62
  var message = value ? _messages.messages.follow : _messages.messages.unfollow;
63
- var projectMessage = value ? _featureGateJsClient.default.getExperimentValue('project-terminology-refresh', 'isEnabled', false) ? _messages.messages.follow_projectGalaxia : _messages.messages.follow_project : _featureGateJsClient.default.getExperimentValue('project-terminology-refresh', 'isEnabled', false) ? _messages.messages.unfollow_projectGalaxia : _messages.messages.unfollow_project;
63
+ var projectMessage = value ? _messages.messages.follow_project : _messages.messages.unfollow_project;
64
64
  var goalMessage = value ? _messages.messages.follow_goal : _messages.messages.unfollow_goal;
65
65
  var stackMessage = isProject ? projectMessage : goalMessage;
66
66
  var label = isStackItem ? stackMessage : message;
@@ -9,6 +9,7 @@ exports.default = void 0;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
10
  var _react = _interopRequireWildcard(require("react"));
11
11
  var _linkProvider = require("@atlaskit/link-provider");
12
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
12
13
  var _useAnalyticsEvents2 = require("../../common/analytics/generated/use-analytics-events");
13
14
  var _constants = require("../../constants");
14
15
  var _flexibleUiContext = require("../../state/flexible-ui-context");
@@ -17,6 +18,8 @@ var _useResolve = _interopRequireDefault(require("../../state/hooks/use-resolve"
17
18
  var _container = _interopRequireDefault(require("./components/container"));
18
19
  var _utils = require("./utils");
19
20
  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); }
21
+ var PENDING_LINK_STATUSES = [_constants.SmartLinkStatus.Pending, _constants.SmartLinkStatus.Resolving];
22
+
20
23
  /**
21
24
  * This represents a Flexible Card: a link represented by a card with metadata.
22
25
  * This is the container in which all Flexible UI Blocks and Elements exist.
@@ -28,6 +31,7 @@ var FlexibleCard = function FlexibleCard(_ref) {
28
31
  var _ref$appearance = _ref.appearance,
29
32
  appearance = _ref$appearance === void 0 ? 'flexible' : _ref$appearance,
30
33
  cardState = _ref.cardState,
34
+ placeholderData = _ref.placeholderData,
31
35
  children = _ref.children,
32
36
  id = _ref.id,
33
37
  onAuthorize = _ref.onAuthorize,
@@ -52,12 +56,16 @@ var FlexibleCard = function FlexibleCard(_ref) {
52
56
  var cardType = cardState.status,
53
57
  details = cardState.details;
54
58
  var status = cardType;
59
+ var shouldUsePlaceholderData = PENDING_LINK_STATUSES.includes(status) && placeholderData && (0, _platformFeatureFlags.fg)('platform_initial_data_for_smart_cards');
60
+ // if we have placeholder data it means we can internally use it
61
+ // as resolved data until the actual data comes back as one of the final statuses
62
+ var contextStatus = shouldUsePlaceholderData ? _constants.SmartLinkStatus.Resolved : status;
55
63
  var context = (0, _react.useMemo)(function () {
56
64
  return (0, _utils.getContextByStatus)({
57
65
  aiSummaryConfig: aiSummaryConfig,
58
66
  appearance: appearance,
59
67
  fireEvent: fireEvent,
60
- response: details,
68
+ response: shouldUsePlaceholderData ? placeholderData.details : details,
61
69
  id: id,
62
70
  onAuthorize: onAuthorize,
63
71
  onClick: onClick,
@@ -65,19 +73,19 @@ var FlexibleCard = function FlexibleCard(_ref) {
65
73
  renderers: renderers,
66
74
  resolve: resolve,
67
75
  actionOptions: actionOptions,
68
- status: status,
76
+ status: shouldUsePlaceholderData ? contextStatus : status,
69
77
  url: url,
70
78
  isPreviewPanelAvailable: isPreviewPanelAvailable,
71
79
  openPreviewPanel: openPreviewPanel
72
80
  });
73
- }, [aiSummaryConfig, appearance, fireEvent, details, id, onAuthorize, onClick, origin, renderers, resolve, actionOptions, status, url, isPreviewPanelAvailable, openPreviewPanel]);
81
+ }, [aiSummaryConfig, appearance, fireEvent, shouldUsePlaceholderData, placeholderData === null || placeholderData === void 0 ? void 0 : placeholderData.details, details, id, onAuthorize, onClick, origin, renderers, resolve, actionOptions, contextStatus, status, url, isPreviewPanelAvailable, openPreviewPanel]);
74
82
  var flexibleCardContext = (0, _react.useMemo)(function () {
75
83
  return {
76
84
  data: context,
77
- status: status,
85
+ status: (0, _platformFeatureFlags.fg)('platform_initial_data_for_smart_cards') ? contextStatus : status,
78
86
  ui: ui
79
87
  };
80
- }, [context, status, ui]);
88
+ }, [context, contextStatus, status, ui]);
81
89
  var _ref2 = context || {},
82
90
  linkTitle = _ref2.linkTitle;
83
91
  var title = linkTitle === null || linkTitle === void 0 ? void 0 : linkTitle.text;
@@ -5,24 +5,20 @@ var _typeof = require("@babel/runtime/helpers/typeof");
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.default = exports.HyperlinkWithSmartLinkResolver = void 0;
8
+ exports.HyperlinkWithSmartLinkResolver = void 0;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
10
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
11
  var _react = _interopRequireWildcard(require("react"));
12
12
  var _reactErrorBoundary = require("react-error-boundary");
13
13
  var _reactIntlNext = require("react-intl-next");
14
- var _featureGateJsClient = _interopRequireDefault(require("@atlaskit/feature-gate-js-client"));
15
14
  var _linkExtractors = require("@atlaskit/link-extractors");
16
15
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
17
- var _state = require("../../../state");
18
16
  var _helpers = require("../../../state/helpers");
19
17
  var _useResolveHyperlink2 = _interopRequireDefault(require("../../../state/hooks/use-resolve-hyperlink"));
20
- var _useResolveHyperlinkValidator = _interopRequireWildcard(require("../../../state/hooks/use-resolve-hyperlink/useResolveHyperlinkValidator"));
18
+ var _useResolveHyperlinkValidator = _interopRequireDefault(require("../../../state/hooks/use-resolve-hyperlink/useResolveHyperlinkValidator"));
21
19
  var _intlProvider = _interopRequireDefault(require("../../common/intl-provider"));
22
20
  var _useSmartLinkEvents = require("../../SmartLinkEvents/useSmartLinkEvents");
23
21
  var _Hyperlink = _interopRequireDefault(require("../Hyperlink"));
24
- var _errorBoundary = _interopRequireDefault(require("./error-boundary"));
25
- var _resolveHyperlink = require("./resolve-hyperlink");
26
22
  var _unauthorizeView = _interopRequireDefault(require("./unauthorize-view"));
27
23
  var _excluded = ["onClick"];
28
24
  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); }
@@ -91,23 +87,4 @@ var HyperlinkWithSmartLinkResolver = exports.HyperlinkWithSmartLinkResolver = (0
91
87
  enforceContext: false
92
88
  }), _Hyperlink.default), {
93
89
  FallbackComponent: HyperlinkFallbackComponent
94
- });
95
-
96
- // Remove on navx-1834-refactor-resolved-hyperlink cleanup
97
-
98
- var HyperlinkResolver = function HyperlinkResolver(_ref2) {
99
- var href = _ref2.href;
100
- var hasSmartCardProvider = !!(0, _react.useContext)(_state.SmartCardContext);
101
- var isSharePointResolveEnabled = _featureGateJsClient.default.getExperimentValue('platform_editor_resolve_hyperlinks_confluence', 'isEnabled', false) || _featureGateJsClient.default.getExperimentValue('platform_editor_resolve_hyperlinks_jira', 'isEnabled', false);
102
- var isGoogleResolveEnabled = _featureGateJsClient.default.getExperimentValue('platform_editor_resolve_google_hyperlinks', 'isEnabled', false);
103
- var shouldResolveSharePoint = (0, _useResolveHyperlinkValidator.isSharePointDomain)(href) && isSharePointResolveEnabled;
104
- var shouldResolveGoogle = (0, _useResolveHyperlinkValidator.isGoogleDomain)(href) && isGoogleResolveEnabled;
105
- var shouldResolveHyperlink = hasSmartCardProvider && (shouldResolveSharePoint || shouldResolveGoogle);
106
- if (!shouldResolveHyperlink) {
107
- return null;
108
- }
109
- return /*#__PURE__*/_react.default.createElement(_resolveHyperlink.ResolveHyperlink, {
110
- href: href
111
- });
112
- };
113
- var _default = exports.default = (0, _errorBoundary.default)(HyperlinkResolver);
90
+ });
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _typeof = require("@babel/runtime/helpers/typeof");
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
@@ -13,19 +12,17 @@ var _reactMagneticDi = require("react-magnetic-di");
13
12
  var _analyticsNext = require("@atlaskit/analytics-next");
14
13
  var _featureGateJsClient = _interopRequireDefault(require("@atlaskit/feature-gate-js-client"));
15
14
  var _link = _interopRequireDefault(require("@atlaskit/link"));
16
- var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
17
15
  var _click = require("../../utils/analytics/click");
18
16
  var _LinkAnalyticsContext = require("../../utils/analytics/LinkAnalyticsContext");
19
17
  var _Hyperlink = _interopRequireDefault(require("./Hyperlink"));
20
- var _HyperlinkResolver = _interopRequireWildcard(require("./HyperlinkResolver"));
18
+ var _HyperlinkResolver = require("./HyperlinkResolver");
21
19
  var _LinkWarningModal = _interopRequireDefault(require("./LinkWarningModal"));
22
20
  var _useLinkWarningModal2 = require("./LinkWarningModal/hooks/use-link-warning-modal");
23
21
  var _excluded = ["href", "children", "checkSafety", "onClick", "testId", "isLinkComponent", "enableResolve"],
24
22
  _excluded2 = ["isLinkSafe", "showSafetyWarningModal"];
25
- 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); }
26
23
  var PACKAGE_DATA = {
27
24
  packageName: "@atlaskit/smart-card",
28
- packageVersion: "0.0.0-development",
25
+ packageVersion: "42.3.4",
29
26
  componentName: 'linkUrl'
30
27
  };
31
28
  var Anchor = (0, _click.withLinkClickedEvent)('a');
@@ -48,30 +45,28 @@ var LinkUrl = function LinkUrl(_ref) {
48
45
  showSafetyWarningModal = _useLinkWarningModal.showSafetyWarningModal,
49
46
  linkWarningModalProps = (0, _objectWithoutProperties2.default)(_useLinkWarningModal, _excluded2);
50
47
  var resolveHyperlinkFG = _featureGateJsClient.default.checkGate('platform_editor_resolve_hyperlinks_killswitch');
51
- if ((0, _platformFeatureFlags.fg)('navx-1834-refactor-resolved-hyperlink')) {
52
- if (resolveHyperlinkFG) {
53
- var _Link = enableResolve ? _HyperlinkResolver.HyperlinkWithSmartLinkResolver : _Hyperlink.default;
54
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_LinkAnalyticsContext.LinkAnalyticsContext, {
55
- url: href,
56
- display: "url"
57
- }, /*#__PURE__*/_react.default.createElement(_Link, (0, _extends2.default)({
58
- href: href,
59
- isLinkComponent: isLinkComponent,
60
- onClick: function onClick(e) {
61
- if (!checkSafety) {
62
- _onClick && _onClick(e);
63
- return;
64
- }
48
+ if (resolveHyperlinkFG) {
49
+ var _Link = enableResolve ? _HyperlinkResolver.HyperlinkWithSmartLinkResolver : _Hyperlink.default;
50
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_LinkAnalyticsContext.LinkAnalyticsContext, {
51
+ url: href,
52
+ display: "url"
53
+ }, /*#__PURE__*/_react.default.createElement(_Link, (0, _extends2.default)({
54
+ href: href,
55
+ isLinkComponent: isLinkComponent,
56
+ onClick: function onClick(e) {
57
+ if (!checkSafety) {
58
+ _onClick && _onClick(e);
59
+ return;
60
+ }
65
61
 
66
- // Only call the onClick if the link is safe
67
- if (isLinkSafe(e, href)) {
68
- _onClick && _onClick(e);
69
- } else {
70
- showSafetyWarningModal(e, href);
71
- }
62
+ // Only call the onClick if the link is safe
63
+ if (isLinkSafe(e, href)) {
64
+ _onClick && _onClick(e);
65
+ } else {
66
+ showSafetyWarningModal(e, href);
72
67
  }
73
- }, props), children)), checkSafety && /*#__PURE__*/_react.default.createElement(_LinkWarningModal.default, linkWarningModalProps));
74
- }
68
+ }
69
+ }, props), children)), checkSafety && /*#__PURE__*/_react.default.createElement(_LinkWarningModal.default, linkWarningModalProps));
75
70
  }
76
71
  var Link = isLinkComponent ? LinkComponent : Anchor;
77
72
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_LinkAnalyticsContext.LinkAnalyticsContext, {
@@ -96,8 +91,6 @@ var LinkUrl = function LinkUrl(_ref) {
96
91
  showSafetyWarningModal(e, href);
97
92
  }
98
93
  }
99
- }, props), children)), checkSafety && /*#__PURE__*/_react.default.createElement(_LinkWarningModal.default, linkWarningModalProps), enableResolve && href && resolveHyperlinkFG && !(0, _platformFeatureFlags.fg)('navx-1834-refactor-resolved-hyperlink') && /*#__PURE__*/_react.default.createElement(_HyperlinkResolver.default, {
100
- href: href
101
- }));
94
+ }, props), children)), checkSafety && /*#__PURE__*/_react.default.createElement(_LinkWarningModal.default, linkWarningModalProps));
102
95
  };
103
96
  var _default = exports.default = (0, _analyticsNext.withAnalyticsContext)(PACKAGE_DATA)(LinkUrl);
@@ -794,11 +794,6 @@ export const messages = defineMessages({
794
794
  defaultMessage: 'Follow to get notifications on this space',
795
795
  description: 'Description on what Follow does'
796
796
  },
797
- follow_projectGalaxia: {
798
- id: 'fabric.linking.follow_project-galaxia',
799
- defaultMessage: 'Follow space',
800
- description: 'Click to follow a project.'
801
- },
802
797
  follow_project_errorGalaxia: {
803
798
  id: 'fabric.linking.follow_project_error-galaxia',
804
799
  defaultMessage: 'We encountered an error while trying to follow the space. Check your connection or refresh the page and try again.',
@@ -809,11 +804,6 @@ export const messages = defineMessages({
809
804
  defaultMessage: 'Unfollow to stop receiving space notifications',
810
805
  description: 'Description on what Unfollow does'
811
806
  },
812
- unfollow_projectGalaxia: {
813
- id: 'fabric.linking.unfollow_project-galaxia',
814
- defaultMessage: 'Unfollow space',
815
- description: 'Click to unfollow a project.'
816
- },
817
807
  unfollow_project_errorGalaxia: {
818
808
  id: 'fabric.linking.unfollow_project_error-galaxia',
819
809
  defaultMessage: 'We encountered an error while trying to unfollow the space. Check your connection or refresh the page and try again.',
@@ -2,14 +2,13 @@ import { useCallback, useMemo } from 'react';
2
2
  import { useSmartLinkContext } from '@atlaskit/link-provider';
3
3
  import { ACTION_RESOLVING, ACTION_UPDATE_METADATA_STATUS, cardAction } from '@atlaskit/linking-common';
4
4
  import { auth } from '@atlaskit/outbound-auth-flow-client';
5
- import { fg } from '@atlaskit/platform-feature-flags';
6
5
  import { useAnalyticsEvents } from '../../common/analytics/generated/use-analytics-events';
7
6
  import { SmartLinkStatus } from '../../constants';
8
7
  import { startUfoExperience } from '../analytics';
9
8
  import { getByDefinitionId, getDefinitionId, getExtensionKey, getServices } from '../helpers';
10
9
  import useInvokeClientAction from '../hooks/use-invoke-client-action';
11
10
  import useResolve from '../hooks/use-resolve';
12
- export const useSmartCardActions = (id, url, placeholderData) => {
11
+ export const useSmartCardActions = (id, url) => {
13
12
  const resolveUrl = useResolve();
14
13
  const invokeClientAction = useInvokeClientAction({});
15
14
  const {
@@ -23,13 +22,12 @@ export const useSmartCardActions = (id, url, placeholderData) => {
23
22
  dispatch
24
23
  } = store;
25
24
  const getSmartLinkState = useCallback(() => {
26
- var _ref, _getState$url;
27
- const placeholderObject = fg('platform_initial_data_for_smart_cards') ? placeholderData : undefined;
25
+ var _getState$url;
28
26
  const {
29
27
  details,
30
28
  status,
31
29
  metadataStatus
32
- } = (_ref = (_getState$url = getState()[url]) !== null && _getState$url !== void 0 ? _getState$url : placeholderObject) !== null && _ref !== void 0 ? _ref : {
30
+ } = (_getState$url = getState()[url]) !== null && _getState$url !== void 0 ? _getState$url : {
33
31
  status: SmartLinkStatus.Pending
34
32
  };
35
33
  return {
@@ -37,7 +35,7 @@ export const useSmartCardActions = (id, url, placeholderData) => {
37
35
  status,
38
36
  metadataStatus
39
37
  };
40
- }, [getState, url, placeholderData]);
38
+ }, [getState, url]);
41
39
  const setMetadataStatus = useCallback(metadataStatus => {
42
40
  dispatch(cardAction(ACTION_UPDATE_METADATA_STATUS, {
43
41
  url
@@ -4,14 +4,14 @@ import { useSmartCardActions as useSmartLinkActions } from '../actions';
4
4
  import { useSmartLinkConfig } from '../config';
5
5
  import { useSmartLinkRenderers } from '../renderers';
6
6
  import { useSmartCardState as useSmartLinkState } from '../store';
7
- export function useSmartLink(id, url, placeholderData) {
8
- const state = useSmartLinkState(url, placeholderData);
7
+ export function useSmartLink(id, url) {
8
+ const state = useSmartLinkState(url);
9
9
  const {
10
10
  store,
11
11
  isPreviewPanelAvailable,
12
12
  openPreviewPanel
13
13
  } = useSmartLinkContext();
14
- const actions = useSmartLinkActions(id, url, placeholderData);
14
+ const actions = useSmartLinkActions(id, url);
15
15
  const config = useSmartLinkConfig();
16
16
  const renderers = useSmartLinkRenderers();
17
17
 
@@ -1,16 +1,12 @@
1
1
  import { useSyncExternalStoreWithSelector } from 'use-sync-external-store/shim/with-selector';
2
2
  import { useSmartLinkContext } from '@atlaskit/link-provider';
3
- import { fg } from '@atlaskit/platform-feature-flags';
4
3
  const PENDING_STATE = {
5
4
  status: 'pending'
6
5
  };
7
- export function useSmartCardState(url, placeholderData) {
6
+ export function useSmartCardState(url) {
8
7
  const {
9
8
  store
10
9
  } = useSmartLinkContext();
11
10
  const cardState = useSyncExternalStoreWithSelector(store.subscribe, store.getState, store.getState, state => state[url]);
12
- if (fg('platform_initial_data_for_smart_cards')) {
13
- return (cardState === null || cardState === void 0 ? void 0 : cardState.status) !== 'resolved' && placeholderData ? placeholderData : cardState !== null && cardState !== void 0 ? cardState : PENDING_STATE;
14
- }
15
11
  return cardState !== null && cardState !== void 0 ? cardState : PENDING_STATE;
16
12
  }
@@ -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: "0.0.0-development"
5
+ packageVersion: "42.3.4"
6
6
  };
7
7
  export let TrackQuickActionType = /*#__PURE__*/function (TrackQuickActionType) {
8
8
  TrackQuickActionType["StatusUpdate"] = "StatusUpdate";
@@ -57,19 +57,6 @@ function Component({
57
57
  fireEvent
58
58
  } = useAnalyticsEvents();
59
59
  let isFlexibleUi = useMemo(() => isFlexibleUiCard(children, ui), [children, ui]);
60
- const structuredPlaceholderData = fg('platform_initial_data_for_smart_cards') ?
61
- // eslint-disable-next-line react-hooks/rules-of-hooks
62
- useMemo(() => {
63
- // execute some basic validation logic to ensure we should consider using placeholder data
64
- if (appearance === 'inline' && isValidPlaceholderData(placeholderData)) {
65
- const data = {
66
- status: 'resolved',
67
- metadataStatus: undefined,
68
- details: placeholderData
69
- };
70
- return data;
71
- }
72
- }, [appearance, placeholderData]) : undefined;
73
60
 
74
61
  // Get state, actions for this card.
75
62
  const {
@@ -80,7 +67,7 @@ function Component({
80
67
  error,
81
68
  isPreviewPanelAvailable,
82
69
  openPreviewPanel
83
- } = useSmartLink(id, url, fg('platform_initial_data_for_smart_cards') ? structuredPlaceholderData : undefined);
70
+ } = useSmartLink(id, url);
84
71
  const ari = getObjectAri(state.details);
85
72
  const name = getObjectName(state.details);
86
73
  const definitionId = getDefinitionId(state.details);
@@ -229,6 +216,19 @@ function Component({
229
216
  display: isFlexibleUi ? 'flexible' : appearance
230
217
  });
231
218
  }, [id, appearance, definitionId, isFlexibleUi, fireEvent]);
219
+ const structuredPlaceholderData = fg('platform_initial_data_for_smart_cards') ?
220
+ // eslint-disable-next-line react-hooks/rules-of-hooks
221
+ useMemo(() => {
222
+ // execute some basic validation logic to ensure we should consider using placeholder data
223
+ if (isFlexibleUi && isValidPlaceholderData(placeholderData)) {
224
+ const data = {
225
+ status: 'resolved',
226
+ metadataStatus: undefined,
227
+ details: placeholderData
228
+ };
229
+ return data;
230
+ }
231
+ }, [isFlexibleUi, placeholderData]) : undefined;
232
232
  if (isFlexibleUi) {
233
233
  let cardState = state;
234
234
  if (error) {
@@ -243,6 +243,7 @@ function Component({
243
243
  return /*#__PURE__*/React.createElement(FlexibleCard, {
244
244
  id: id,
245
245
  cardState: cardState,
246
+ placeholderData: fg('platform_initial_data_for_smart_cards') ? structuredPlaceholderData : undefined,
246
247
  onAuthorize: services.length && handleAuthorize || undefined,
247
248
  onClick: handleClickWrapper,
248
249
  origin: "smartLinkCard",
@@ -41,7 +41,7 @@ const FollowAction = props => {
41
41
  } = actionData;
42
42
  const isStackItem = props.as === 'stack-item';
43
43
  const message = value ? messages.follow : messages.unfollow;
44
- const projectMessage = value ? FeatureGates.getExperimentValue('project-terminology-refresh', 'isEnabled', false) ? messages.follow_projectGalaxia : messages.follow_project : FeatureGates.getExperimentValue('project-terminology-refresh', 'isEnabled', false) ? messages.unfollow_projectGalaxia : messages.unfollow_project;
44
+ const projectMessage = value ? messages.follow_project : messages.unfollow_project;
45
45
  const goalMessage = value ? messages.follow_goal : messages.unfollow_goal;
46
46
  const stackMessage = isProject ? projectMessage : goalMessage;
47
47
  const label = isStackItem ? stackMessage : message;