@atlaskit/smart-card 26.57.1 → 26.57.3

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 (26) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/cjs/utils/analytics/analytics.js +1 -1
  3. package/dist/cjs/view/HoverCard/components/HoverCardContent.js +2 -3
  4. package/dist/cjs/view/HoverCard/components/views/resolved/index.js +10 -16
  5. package/dist/cjs/view/HoverCard/utils.js +63 -162
  6. package/dist/cjs/view/LinkUrl/index.js +1 -1
  7. package/dist/es2019/utils/analytics/analytics.js +1 -1
  8. package/dist/es2019/view/HoverCard/components/HoverCardContent.js +2 -3
  9. package/dist/es2019/view/HoverCard/components/views/resolved/index.js +11 -17
  10. package/dist/es2019/view/HoverCard/utils.js +48 -152
  11. package/dist/es2019/view/LinkUrl/index.js +1 -1
  12. package/dist/esm/utils/analytics/analytics.js +1 -1
  13. package/dist/esm/view/HoverCard/components/HoverCardContent.js +3 -4
  14. package/dist/esm/view/HoverCard/components/views/resolved/index.js +11 -17
  15. package/dist/esm/view/HoverCard/utils.js +62 -161
  16. package/dist/esm/view/LinkUrl/index.js +1 -1
  17. package/dist/types/view/HoverCard/types.d.ts +0 -6
  18. package/dist/types/view/HoverCard/utils.d.ts +7 -2
  19. package/dist/types-ts4.5/view/HoverCard/types.d.ts +0 -6
  20. package/dist/types-ts4.5/view/HoverCard/utils.d.ts +7 -2
  21. package/package.json +2 -2
  22. package/dist/cjs/extractors/hover/extractMetadata.js +0 -33
  23. package/dist/es2019/extractors/hover/extractMetadata.js +0 -20
  24. package/dist/esm/extractors/hover/extractMetadata.js +0 -26
  25. package/dist/types/extractors/hover/extractMetadata.d.ts +0 -5
  26. package/dist/types-ts4.5/extractors/hover/extractMetadata.d.ts +0 -5
package/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # @atlaskit/smart-card
2
2
 
3
+ ## 26.57.3
4
+
5
+ ### Patch Changes
6
+
7
+ - [#93402](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/93402) [`a76cfc6ce93f`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/a76cfc6ce93f) - Hover preview redesign: Remove second metadata block
8
+
9
+ ## 26.57.2
10
+
11
+ ### Patch Changes
12
+
13
+ - [#92944](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/92944) [`1d66db78c1c9`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/1d66db78c1c9) - Refactor hover card metadata function
14
+ - Updated dependencies
15
+
3
16
  ## 26.57.1
4
17
 
5
18
  ### Patch Changes
@@ -22,7 +22,7 @@ var ANALYTICS_CHANNEL = exports.ANALYTICS_CHANNEL = 'media';
22
22
  var context = exports.context = {
23
23
  componentName: 'smart-cards',
24
24
  packageName: "@atlaskit/smart-card",
25
- packageVersion: "26.57.1"
25
+ packageVersion: "26.57.3"
26
26
  };
27
27
  var TrackQuickActionType = exports.TrackQuickActionType = /*#__PURE__*/function (TrackQuickActionType) {
28
28
  TrackQuickActionType["StatusUpdate"] = "StatusUpdate";
@@ -15,7 +15,6 @@ var _copy = _interopRequireDefault(require("@atlaskit/icon/glyph/copy"));
15
15
  var _react2 = _interopRequireWildcard(require("react"));
16
16
  var _linkProvider = require("@atlaskit/link-provider");
17
17
  var _constants = require("../../../constants");
18
- var _extractMetadata2 = require("../../../extractors/hover/extractMetadata");
19
18
  var _analytics2 = require("../../../state/analytics");
20
19
  var _helpers = require("../../../state/helpers");
21
20
  var _utils = require("../../../utils");
@@ -144,8 +143,8 @@ var HoverCardContent = function HoverCardContent(_ref) {
144
143
  return [getCopyAction(url)];
145
144
  }, [url]);
146
145
  var data = (_cardState$details = cardState.details) === null || _cardState$details === void 0 ? void 0 : _cardState$details.data;
147
- var _extractMetadata = (0, _extractMetadata2.extractMetadata)((0, _utils2.getSimulatedMetadata)(extensionKey, data)),
148
- subtitle = _extractMetadata.subtitle;
146
+ var _getMetadata = (0, _utils2.getMetadata)(extensionKey, data),
147
+ subtitle = _getMetadata.subtitle;
149
148
  var titleMaxLines = subtitle && subtitle.length > 0 ? 1 : 2;
150
149
  var titleBlockProps = {
151
150
  actions: (0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.smart-card.hover-card-action-redesign') ? undefined : titleActions,
@@ -15,7 +15,6 @@ var _styled = require("./styled");
15
15
  var _FlexibleCard = _interopRequireDefault(require("../../../../FlexibleCard"));
16
16
  var _utils = require("../../../utils");
17
17
  var _ImagePreview = _interopRequireDefault(require("../../ImagePreview"));
18
- var _extractMetadata = require("../../../../../extractors/hover/extractMetadata");
19
18
  var _messages = require("../../../../../messages");
20
19
  var _reactIntlNext = require("react-intl-next");
21
20
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
@@ -84,7 +83,7 @@ var ConnectedAIBlock = function ConnectedAIBlock(_ref) {
84
83
  return showData ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, !imagePreview && /*#__PURE__*/_react.default.createElement(_blocks.SnippetBlock, {
85
84
  testId: 'connected-AI',
86
85
  status: _constants.SmartLinkStatus.Resolved
87
- }), /*#__PURE__*/_react.default.createElement(_blocks.MetadataBlock, {
86
+ }), !(0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.smart-card.hover-card-action-redesign') && /*#__PURE__*/_react.default.createElement(_blocks.MetadataBlock, {
88
87
  primary: bottomPrimary,
89
88
  size: _constants.SmartLinkSize.Large,
90
89
  overrideCss: _styled.metadataBlockCss,
@@ -119,16 +118,11 @@ var HoverCardResolvedView = function HoverCardResolvedView(_ref2) {
119
118
  }, [cardActions, onActionClick]);
120
119
  var data = (_cardState$details = cardState.details) === null || _cardState$details === void 0 ? void 0 : _cardState$details.data;
121
120
  var _useMemo = (0, _react.useMemo)(function () {
122
- var betterMetadata = (0, _utils.getSimulatedBetterMetadata)(extensionKey, data);
123
- return {
124
- topPrimary: (0, _extractMetadata.elementNamesToItems)(betterMetadata.topMetadataBlock.primary),
125
- topSecondary: (0, _extractMetadata.elementNamesToItems)(betterMetadata.topMetadataBlock.secondary),
126
- bottomPrimary: (0, _extractMetadata.elementNamesToItems)(betterMetadata.bottomMetadataBlock.primary)
127
- };
121
+ return (0, _utils.getMetadata)(extensionKey, data);
128
122
  }, [data, extensionKey]),
129
- topPrimary = _useMemo.topPrimary,
130
- topSecondary = _useMemo.topSecondary,
131
- bottomPrimary = _useMemo.bottomPrimary;
123
+ primary = _useMemo.primary,
124
+ secondary = _useMemo.secondary,
125
+ tertiary = _useMemo.tertiary;
132
126
  var snippetHeight = _react.default.useRef(0);
133
127
  var snippetBlockRef = (0, _react.useRef)(null);
134
128
  var onSnippetRender = (0, _react.useCallback)(function () {
@@ -152,8 +146,8 @@ var HoverCardResolvedView = function HoverCardResolvedView(_ref2) {
152
146
  return /*#__PURE__*/_react.default.createElement(_FlexibleCard.default, flexibleCardProps, imagePreview, /*#__PURE__*/_react.default.createElement(_blocks.TitleBlock, (0, _extends2.default)({}, titleBlockProps, {
153
147
  metadataPosition: _constants.SmartLinkPosition.Top
154
148
  })), /*#__PURE__*/_react.default.createElement(_blocks.MetadataBlock, {
155
- primary: topPrimary,
156
- secondary: topSecondary,
149
+ primary: primary,
150
+ secondary: secondary,
157
151
  overrideCss: _styled.metadataBlockCss,
158
152
  maxLines: 1,
159
153
  size: _constants.SmartLinkSize.Medium
@@ -167,7 +161,7 @@ var HoverCardResolvedView = function HoverCardResolvedView(_ref2) {
167
161
  blockRef: connectedAIBlockRef
168
162
  }, /*#__PURE__*/_react.default.createElement(ConnectedAIBlock, {
169
163
  imagePreview: !!imagePreview,
170
- bottomPrimary: bottomPrimary,
164
+ bottomPrimary: tertiary,
171
165
  data: data
172
166
  })), !isAISummaryEnabled && !imagePreview && /*#__PURE__*/_react.default.createElement(_blocks.SnippetBlock, {
173
167
  status: _constants.SmartLinkStatus.Resolved
@@ -176,8 +170,8 @@ var HoverCardResolvedView = function HoverCardResolvedView(_ref2) {
176
170
  onRender: onSnippetRender,
177
171
  blockRef: snippetBlockRef,
178
172
  overrideCss: _styled.hiddenSnippetStyles
179
- }), !isAISummaryEnabled && /*#__PURE__*/_react.default.createElement(_blocks.MetadataBlock, {
180
- primary: bottomPrimary,
173
+ }), !isAISummaryEnabled && !isActionBlockEnabled && /*#__PURE__*/_react.default.createElement(_blocks.MetadataBlock, {
174
+ primary: tertiary,
181
175
  size: _constants.SmartLinkSize.Large,
182
176
  overrideCss: _styled.metadataBlockCss,
183
177
  maxLines: 1,
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.getSimulatedMetadata = exports.getSimulatedBetterMetadata = void 0;
7
+ exports.getMetadata = void 0;
8
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
9
  var _constants = require("../../constants");
10
10
  var _linkExtractors = require("@atlaskit/link-extractors");
@@ -12,197 +12,98 @@ var _utils = require("../../extractors/flexible/utils");
12
12
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
13
13
  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; }
14
14
  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) { (0, _defineProperty2.default)(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; }
15
- var getSimulatedMetadata = exports.getSimulatedMetadata = function getSimulatedMetadata() {
16
- var extensionKey = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
17
- var data = arguments.length > 1 ? arguments[1] : undefined;
15
+ var getSimulatedBetterMetadata = function getSimulatedBetterMetadata(extensionKey, data) {
16
+ var _data$Type$includes, _data$Type;
18
17
  var types = data ? (0, _linkExtractors.extractType)(data) : undefined;
18
+ var defaultMetadata = {
19
+ primary: [_constants.ElementName.AuthorGroup, _constants.ElementName.ModifiedOn]
20
+ };
19
21
  switch (extensionKey) {
20
22
  case 'bitbucket-object-provider':
21
23
  case 'native-bitbucket-object-provider':
22
24
  if (types !== null && types !== void 0 && types.includes('atlassian:SourceCodePullRequest')) {
23
25
  return {
24
- metadata: {
25
- primary: [_constants.ElementName.AuthorGroup, _constants.ElementName.ModifiedOn, _constants.ElementName.SubscriberCount, _constants.ElementName.State],
26
- secondary: [],
27
- subtitle: [_constants.ElementName.SourceBranch, _constants.ElementName.TargetBranch]
28
- }
26
+ primary: [_constants.ElementName.AuthorGroup, _constants.ElementName.ModifiedOn, _constants.ElementName.SubscriberCount, _constants.ElementName.State],
27
+ subtitle: [_constants.ElementName.SourceBranch, _constants.ElementName.TargetBranch]
29
28
  };
30
29
  }
31
- return {
32
- metadata: {
33
- primary: [_constants.ElementName.ModifiedOn, _constants.ElementName.CreatedBy],
34
- secondary: [],
35
- subtitle: []
36
- }
37
- };
38
- case 'confluence-object-provider':
39
- var primaryAttribution = data && (0, _utils.extractOwnedBy)(data) ? _constants.ElementName.OwnedBy : _constants.ElementName.CreatedBy;
40
- return {
41
- metadata: {
42
- primary: [_constants.ElementName.AuthorGroup, primaryAttribution],
43
- secondary: [_constants.ElementName.ReactCount, _constants.ElementName.CommentCount, _constants.ElementName.ViewCount],
44
- subtitle: []
45
- }
46
- };
47
- case 'jira-object-provider':
48
- return {
49
- metadata: {
50
- primary: [_constants.ElementName.AuthorGroup, _constants.ElementName.State, _constants.ElementName.Priority],
51
- secondary: [],
52
- subtitle: []
53
- }
54
- };
55
- case 'trello-object-provider':
56
- return {
57
- metadata: {
58
- primary: [_constants.ElementName.AuthorGroup, _constants.ElementName.State, _constants.ElementName.DueOn],
59
- secondary: [_constants.ElementName.ReactCount, _constants.ElementName.CommentCount, _constants.ElementName.AttachmentCount, _constants.ElementName.ChecklistProgress],
60
- subtitle: [_constants.ElementName.Location]
61
- }
62
- };
63
- case 'watermelon-object-provider':
64
- if (types !== null && types !== void 0 && types.includes('atlassian:Project')) {
30
+ if ((0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.extractor.improve-bitbucket-file-links') && types !== null && types !== void 0 && types.includes('schema:DigitalDocument')) {
65
31
  return {
66
- metadata: {
67
- primary: [_constants.ElementName.AuthorGroup, _constants.ElementName.ModifiedOn, _constants.ElementName.State, _constants.ElementName.DueOn],
68
- secondary: [],
69
- subtitle: []
70
- }
32
+ primary: [_constants.ElementName.LatestCommit, _constants.ElementName.CollaboratorGroup, _constants.ElementName.ModifiedOn]
71
33
  };
72
34
  }
73
35
  return {
74
- metadata: {
75
- primary: [_constants.ElementName.AuthorGroup, _constants.ElementName.State, _constants.ElementName.DueOn],
76
- secondary: [],
77
- subtitle: []
78
- }
79
- };
80
- default:
81
- return {
82
- metadata: {
83
- primary: [_constants.ElementName.ModifiedOn, _constants.ElementName.CreatedBy],
84
- secondary: [],
85
- subtitle: []
86
- }
36
+ primary: [_constants.ElementName.AuthorGroup, _constants.ElementName.ModifiedOn]
87
37
  };
88
- }
89
- };
90
- var getSimulatedBetterMetadata = exports.getSimulatedBetterMetadata = function getSimulatedBetterMetadata() {
91
- var _data$Type$includes, _data$Type;
92
- var extensionKey = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
93
- var data = arguments.length > 1 ? arguments[1] : undefined;
94
- var types = data ? (0, _linkExtractors.extractType)(data) : undefined;
95
- var defaultMetadata = {
96
- topMetadataBlock: {
97
- primary: [_constants.ElementName.AuthorGroup, _constants.ElementName.ModifiedOn],
98
- secondary: [],
99
- subtitle: []
100
- },
101
- bottomMetadataBlock: {
102
- primary: [],
103
- secondary: [],
104
- subtitle: []
105
- }
106
- };
107
- switch (extensionKey) {
108
- case 'bitbucket-object-provider':
109
- case 'native-bitbucket-object-provider':
110
- if (types !== null && types !== void 0 && types.includes('atlassian:SourceCodePullRequest')) {
111
- return _objectSpread(_objectSpread({}, defaultMetadata), {}, {
112
- topMetadataBlock: {
113
- primary: [_constants.ElementName.AuthorGroup, _constants.ElementName.ModifiedOn, _constants.ElementName.SubscriberCount, _constants.ElementName.State],
114
- secondary: [],
115
- subtitle: [_constants.ElementName.SourceBranch, _constants.ElementName.TargetBranch]
116
- }
117
- });
118
- }
119
- if ((0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.extractor.improve-bitbucket-file-links') && types !== null && types !== void 0 && types.includes('schema:DigitalDocument')) {
120
- return _objectSpread(_objectSpread({}, defaultMetadata), {}, {
121
- topMetadataBlock: {
122
- primary: [_constants.ElementName.LatestCommit, _constants.ElementName.CollaboratorGroup, _constants.ElementName.ModifiedOn],
123
- secondary: [],
124
- subtitle: []
125
- }
126
- });
127
- }
128
- return _objectSpread(_objectSpread({}, defaultMetadata), {}, {
129
- topMetadataBlock: {
130
- primary: [_constants.ElementName.AuthorGroup, _constants.ElementName.ModifiedOn],
131
- secondary: [],
132
- subtitle: []
133
- }
134
- });
135
38
  case 'confluence-object-provider':
136
39
  var primaryAttribution = data && (0, _utils.extractOwnedBy)(data) ? _constants.ElementName.OwnedByGroup : _constants.ElementName.AuthorGroup;
137
40
  return {
138
- topMetadataBlock: {
139
- primary: [primaryAttribution, _constants.ElementName.ModifiedOn],
140
- secondary: [],
141
- subtitle: []
142
- },
143
- bottomMetadataBlock: {
144
- primary: [_constants.ElementName.ReactCount, _constants.ElementName.CommentCount, _constants.ElementName.ViewCount],
145
- secondary: [],
146
- subtitle: []
147
- }
41
+ primary: [primaryAttribution, _constants.ElementName.ModifiedOn],
42
+ tertiary: [_constants.ElementName.ReactCount, _constants.ElementName.CommentCount, _constants.ElementName.ViewCount]
148
43
  };
149
44
  case 'jira-object-provider':
150
- var isJiraTask = (_data$Type$includes = (_data$Type = data['@type']) === null || _data$Type === void 0 ? void 0 : _data$Type.includes('atlassian:Task')) !== null && _data$Type$includes !== void 0 ? _data$Type$includes : false;
45
+ var isJiraTask = (_data$Type$includes = data === null || data === void 0 || (_data$Type = data['@type']) === null || _data$Type === void 0 ? void 0 : _data$Type.includes('atlassian:Task')) !== null && _data$Type$includes !== void 0 ? _data$Type$includes : false;
151
46
  return _objectSpread(_objectSpread({}, defaultMetadata), isJiraTask && {
152
- topMetadataBlock: {
153
- primary: [_constants.ElementName.AssignedToGroup, _constants.ElementName.State, _constants.ElementName.StoryPoints, _constants.ElementName.Priority],
154
- secondary: [],
155
- subtitle: []
156
- }
47
+ primary: [_constants.ElementName.AssignedToGroup, _constants.ElementName.State, _constants.ElementName.StoryPoints, _constants.ElementName.Priority]
157
48
  });
158
49
  case 'trello-object-provider':
159
- return _objectSpread(_objectSpread({}, defaultMetadata), {}, {
160
- topMetadataBlock: {
161
- primary: [_constants.ElementName.AuthorGroup, _constants.ElementName.State, _constants.ElementName.DueOn],
162
- secondary: [_constants.ElementName.ReactCount, _constants.ElementName.CommentCount, _constants.ElementName.AttachmentCount, _constants.ElementName.ChecklistProgress],
163
- subtitle: [_constants.ElementName.Location]
164
- }
165
- });
50
+ return {
51
+ primary: [_constants.ElementName.AuthorGroup, _constants.ElementName.State, _constants.ElementName.DueOn],
52
+ secondary: [_constants.ElementName.ReactCount, _constants.ElementName.CommentCount, _constants.ElementName.AttachmentCount, _constants.ElementName.ChecklistProgress],
53
+ subtitle: [_constants.ElementName.Location]
54
+ };
166
55
  case 'watermelon-object-provider':
167
56
  if (types !== null && types !== void 0 && types.includes('atlassian:Project')) {
168
- return _objectSpread(_objectSpread({}, defaultMetadata), {}, {
169
- topMetadataBlock: {
170
- primary: [_constants.ElementName.AuthorGroup, _constants.ElementName.ModifiedOn, _constants.ElementName.State, _constants.ElementName.DueOn],
171
- secondary: [],
172
- subtitle: []
173
- }
174
- });
57
+ return {
58
+ primary: [_constants.ElementName.AuthorGroup, _constants.ElementName.ModifiedOn, _constants.ElementName.State, _constants.ElementName.DueOn]
59
+ };
175
60
  }
176
- return _objectSpread(_objectSpread({}, defaultMetadata), {}, {
177
- topMetadataBlock: {
178
- primary: [_constants.ElementName.AuthorGroup, _constants.ElementName.State, _constants.ElementName.DueOn],
179
- secondary: [],
180
- subtitle: []
181
- }
182
- });
61
+ return {
62
+ primary: [_constants.ElementName.AuthorGroup, _constants.ElementName.State, _constants.ElementName.DueOn]
63
+ };
183
64
  case 'slack-object-provider':
184
65
  return {
185
- topMetadataBlock: {
186
- primary: [_constants.ElementName.AuthorGroup, _constants.ElementName.SentOn],
187
- secondary: [],
188
- subtitle: []
189
- },
190
- bottomMetadataBlock: {
191
- primary: [_constants.ElementName.ReactCount, _constants.ElementName.CommentCount],
192
- secondary: [],
193
- subtitle: []
194
- }
66
+ primary: [_constants.ElementName.AuthorGroup, _constants.ElementName.SentOn],
67
+ tertiary: [_constants.ElementName.ReactCount, _constants.ElementName.CommentCount]
195
68
  };
196
69
  case 'google-object-provider':
197
70
  case 'figma-object-provider':
198
- return _objectSpread(_objectSpread({}, defaultMetadata), {}, {
199
- topMetadataBlock: {
200
- primary: [_constants.ElementName.AuthorGroup, _constants.ElementName.ModifiedOn],
201
- secondary: [],
202
- subtitle: []
203
- }
204
- });
71
+ return {
72
+ primary: [_constants.ElementName.AuthorGroup, _constants.ElementName.ModifiedOn]
73
+ };
205
74
  default:
206
75
  return defaultMetadata;
207
76
  }
77
+ };
78
+ var AvatarGroupsWithNamePrefix = [_constants.ElementName.AssignedToGroup, _constants.ElementName.OwnedByGroup, _constants.ElementName.AuthorGroup];
79
+ var toElementItem = function toElementItem(name) {
80
+ var showNamePrefix = AvatarGroupsWithNamePrefix.indexOf(name) !== -1 ? true : undefined;
81
+ var testId = "".concat(name.toLowerCase(), "-metadata-element");
82
+ return {
83
+ name: name,
84
+ showNamePrefix: showNamePrefix,
85
+ testId: testId
86
+ };
87
+ };
88
+ var toElementItems = function toElementItems(elementNames) {
89
+ if (!(elementNames !== null && elementNames !== void 0 && elementNames.length)) {
90
+ return;
91
+ }
92
+ return elementNames.filter(function (name) {
93
+ return name in _constants.ElementName;
94
+ }).map(toElementItem);
95
+ };
96
+ var getMetadata = exports.getMetadata = function getMetadata(extensionKey, data) {
97
+ var metadata = getSimulatedBetterMetadata(extensionKey, data);
98
+ var primary = (0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.smart-card.hover-card-action-redesign') ? [].concat(metadata.primary, metadata.tertiary) : metadata.primary;
99
+
100
+ // `tertiary` should be removed completely during cleanup:
101
+ // https://product-fabric.atlassian.net/browse/EDM-9556
102
+ var tertiary = (0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.smart-card.hover-card-action-redesign') ? undefined : metadata.tertiary;
103
+ return {
104
+ subtitle: toElementItems(metadata.subtitle),
105
+ primary: toElementItems(primary),
106
+ secondary: toElementItems(metadata.secondary),
107
+ tertiary: toElementItems(tertiary)
108
+ };
208
109
  };
@@ -17,7 +17,7 @@ var _excluded = ["href", "children", "checkSafety", "onClick", "testId"],
17
17
  _excluded2 = ["isLinkSafe", "showSafetyWarningModal"];
18
18
  var PACKAGE_DATA = {
19
19
  packageName: "@atlaskit/smart-card",
20
- packageVersion: "26.57.1",
20
+ packageVersion: "26.57.3",
21
21
  componentName: 'linkUrl'
22
22
  };
23
23
  var Link = (0, _click.withLinkClickedEvent)('a');
@@ -4,7 +4,7 @@ export const ANALYTICS_CHANNEL = 'media';
4
4
  export const context = {
5
5
  componentName: 'smart-cards',
6
6
  packageName: "@atlaskit/smart-card",
7
- packageVersion: "26.57.1"
7
+ packageVersion: "26.57.3"
8
8
  };
9
9
  export let TrackQuickActionType = /*#__PURE__*/function (TrackQuickActionType) {
10
10
  TrackQuickActionType["StatusUpdate"] = "StatusUpdate";
@@ -6,12 +6,11 @@ import CopyIcon from '@atlaskit/icon/glyph/copy';
6
6
  import React, { useCallback, useEffect, useMemo, useRef } from 'react';
7
7
  import { useSmartLinkContext } from '@atlaskit/link-provider';
8
8
  import { ActionName, CardDisplay, SmartLinkPosition, SmartLinkSize } from '../../../constants';
9
- import { extractMetadata } from '../../../extractors/hover/extractMetadata';
10
9
  import { useSmartLinkAnalytics } from '../../../state/analytics';
11
10
  import { getExtensionKey, getServices } from '../../../state/helpers';
12
11
  import { isSpecialEvent } from '../../../utils';
13
12
  import { flexibleUiOptions, titleBlockCss } from '../styled';
14
- import { getSimulatedMetadata } from '../utils';
13
+ import { getMetadata } from '../utils';
15
14
  import HoverCardLoadingView from './views/resolving';
16
15
  import HoverCardUnauthorisedView from './views/unauthorised';
17
16
  import HoverCardResolvedView from './views/resolved';
@@ -109,7 +108,7 @@ const HoverCardContent = ({
109
108
  const data = (_cardState$details = cardState.details) === null || _cardState$details === void 0 ? void 0 : _cardState$details.data;
110
109
  const {
111
110
  subtitle
112
- } = extractMetadata(getSimulatedMetadata(extensionKey, data));
111
+ } = getMetadata(extensionKey, data);
113
112
  const titleMaxLines = subtitle && subtitle.length > 0 ? 1 : 2;
114
113
  const titleBlockProps = {
115
114
  actions: getBooleanFF('platform.linking-platform.smart-card.hover-card-action-redesign') ? undefined : titleActions,
@@ -4,9 +4,8 @@ import { ActionName, CardDisplay, ElementName, SmartLinkPosition, SmartLinkSize,
4
4
  import { FooterBlock, MetadataBlock, RelatedUrlsBlock, SnippetBlock, TitleBlock, AISummaryBlock, CustomBlock, ActionBlock } from '../../../../FlexibleCard/components/blocks';
5
5
  import { footerBlockCss, hiddenSnippetStyles, metadataBlockCss } from './styled';
6
6
  import FlexibleCard from '../../../../FlexibleCard';
7
- import { getSimulatedBetterMetadata } from '../../../utils';
7
+ import { getMetadata } from '../../../utils';
8
8
  import ImagePreview from '../../ImagePreview';
9
- import { elementNamesToItems } from '../../../../../extractors/hover/extractMetadata';
10
9
  import { messages } from '../../../../../messages';
11
10
  import { FormattedMessage } from 'react-intl-next';
12
11
  import { getBooleanFF } from '@atlaskit/platform-feature-flags';
@@ -78,7 +77,7 @@ const ConnectedAIBlock = ({
78
77
  return showData ? /*#__PURE__*/React.createElement(React.Fragment, null, !imagePreview && /*#__PURE__*/React.createElement(SnippetBlock, {
79
78
  testId: 'connected-AI',
80
79
  status: SmartLinkStatus.Resolved
81
- }), /*#__PURE__*/React.createElement(MetadataBlock, {
80
+ }), !getBooleanFF('platform.linking-platform.smart-card.hover-card-action-redesign') && /*#__PURE__*/React.createElement(MetadataBlock, {
82
81
  primary: bottomPrimary,
83
82
  size: SmartLinkSize.Large,
84
83
  overrideCss: metadataBlockCss,
@@ -111,16 +110,11 @@ const HoverCardResolvedView = ({
111
110
  const footerActions = useMemo(() => toFooterActions(cardActions, onActionClick), [cardActions, onActionClick]);
112
111
  const data = (_cardState$details = cardState.details) === null || _cardState$details === void 0 ? void 0 : _cardState$details.data;
113
112
  const {
114
- topPrimary,
115
- topSecondary,
116
- bottomPrimary
113
+ primary,
114
+ secondary,
115
+ tertiary
117
116
  } = useMemo(() => {
118
- const betterMetadata = getSimulatedBetterMetadata(extensionKey, data);
119
- return {
120
- topPrimary: elementNamesToItems(betterMetadata.topMetadataBlock.primary),
121
- topSecondary: elementNamesToItems(betterMetadata.topMetadataBlock.secondary),
122
- bottomPrimary: elementNamesToItems(betterMetadata.bottomMetadataBlock.primary)
123
- };
117
+ return getMetadata(extensionKey, data);
124
118
  }, [data, extensionKey]);
125
119
  const snippetHeight = React.useRef(0);
126
120
  const snippetBlockRef = useRef(null);
@@ -145,8 +139,8 @@ const HoverCardResolvedView = ({
145
139
  return /*#__PURE__*/React.createElement(FlexibleCard, flexibleCardProps, imagePreview, /*#__PURE__*/React.createElement(TitleBlock, _extends({}, titleBlockProps, {
146
140
  metadataPosition: SmartLinkPosition.Top
147
141
  })), /*#__PURE__*/React.createElement(MetadataBlock, {
148
- primary: topPrimary,
149
- secondary: topSecondary,
142
+ primary: primary,
143
+ secondary: secondary,
150
144
  overrideCss: metadataBlockCss,
151
145
  maxLines: 1,
152
146
  size: SmartLinkSize.Medium
@@ -160,7 +154,7 @@ const HoverCardResolvedView = ({
160
154
  blockRef: connectedAIBlockRef
161
155
  }, /*#__PURE__*/React.createElement(ConnectedAIBlock, {
162
156
  imagePreview: !!imagePreview,
163
- bottomPrimary: bottomPrimary,
157
+ bottomPrimary: tertiary,
164
158
  data: data
165
159
  })), !isAISummaryEnabled && !imagePreview && /*#__PURE__*/React.createElement(SnippetBlock, {
166
160
  status: SmartLinkStatus.Resolved
@@ -169,8 +163,8 @@ const HoverCardResolvedView = ({
169
163
  onRender: onSnippetRender,
170
164
  blockRef: snippetBlockRef,
171
165
  overrideCss: hiddenSnippetStyles
172
- }), !isAISummaryEnabled && /*#__PURE__*/React.createElement(MetadataBlock, {
173
- primary: bottomPrimary,
166
+ }), !isAISummaryEnabled && !isActionBlockEnabled && /*#__PURE__*/React.createElement(MetadataBlock, {
167
+ primary: tertiary,
174
168
  size: SmartLinkSize.Large,
175
169
  overrideCss: metadataBlockCss,
176
170
  maxLines: 1,