@atlaskit/smart-card 26.2.0 → 26.2.2

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 (178) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/cjs/extractors/block/index.js +5 -4
  3. package/dist/cjs/extractors/common/actions/extractPreviewAction.js +4 -2
  4. package/dist/cjs/i18n/cs.js +4 -0
  5. package/dist/cjs/i18n/da.js +4 -0
  6. package/dist/cjs/i18n/de.js +4 -0
  7. package/dist/cjs/i18n/en_ZZ.js +54 -4
  8. package/dist/cjs/i18n/es.js +4 -0
  9. package/dist/cjs/i18n/fi.js +5 -0
  10. package/dist/cjs/i18n/fr.js +4 -0
  11. package/dist/cjs/i18n/hu.js +4 -0
  12. package/dist/cjs/i18n/it.js +4 -0
  13. package/dist/cjs/i18n/ja.js +4 -0
  14. package/dist/cjs/i18n/ko.js +4 -0
  15. package/dist/cjs/i18n/nb.js +4 -0
  16. package/dist/cjs/i18n/nl.js +4 -0
  17. package/dist/cjs/i18n/pl.js +4 -0
  18. package/dist/cjs/i18n/pt_BR.js +4 -0
  19. package/dist/cjs/i18n/ru.js +4 -0
  20. package/dist/cjs/i18n/sv.js +4 -0
  21. package/dist/cjs/i18n/th.js +4 -0
  22. package/dist/cjs/i18n/tr.js +4 -0
  23. package/dist/cjs/i18n/uk.js +4 -0
  24. package/dist/cjs/i18n/vi.js +4 -0
  25. package/dist/cjs/i18n/zh.js +4 -0
  26. package/dist/cjs/i18n/zh_TW.js +4 -0
  27. package/dist/cjs/messages.js +6 -0
  28. package/dist/cjs/state/actions/index.js +27 -11
  29. package/dist/cjs/state/hooks/use-resolve/index.js +28 -12
  30. package/dist/cjs/utils/analytics/SmartLinkAnalyticsContext.js +47 -0
  31. package/dist/cjs/version.json +1 -1
  32. package/dist/cjs/view/BlockCard/actions/PreviewAction.js +4 -2
  33. package/dist/cjs/view/BlockCard/index.js +3 -1
  34. package/dist/cjs/view/CardWithUrl/component.js +13 -3
  35. package/dist/cjs/view/FlexibleCard/components/actions/action/preview-action/index.js +7 -1
  36. package/dist/cjs/view/FlexibleCard/components/actions/utils.js +1 -1
  37. package/dist/cjs/view/HoverCard/components/HoverCardComponent.js +21 -2
  38. package/dist/cjs/view/HoverCard/components/views/resolved/index.js +26 -3
  39. package/dist/es2019/extractors/block/index.js +5 -4
  40. package/dist/es2019/extractors/common/actions/extractPreviewAction.js +4 -2
  41. package/dist/es2019/i18n/cs.js +4 -0
  42. package/dist/es2019/i18n/da.js +4 -0
  43. package/dist/es2019/i18n/de.js +4 -0
  44. package/dist/es2019/i18n/en_ZZ.js +54 -4
  45. package/dist/es2019/i18n/es.js +4 -0
  46. package/dist/es2019/i18n/fi.js +5 -0
  47. package/dist/es2019/i18n/fr.js +4 -0
  48. package/dist/es2019/i18n/hu.js +4 -0
  49. package/dist/es2019/i18n/it.js +4 -0
  50. package/dist/es2019/i18n/ja.js +4 -0
  51. package/dist/es2019/i18n/ko.js +4 -0
  52. package/dist/es2019/i18n/nb.js +4 -0
  53. package/dist/es2019/i18n/nl.js +4 -0
  54. package/dist/es2019/i18n/pl.js +4 -0
  55. package/dist/es2019/i18n/pt_BR.js +4 -0
  56. package/dist/es2019/i18n/ru.js +4 -0
  57. package/dist/es2019/i18n/sv.js +4 -0
  58. package/dist/es2019/i18n/th.js +4 -0
  59. package/dist/es2019/i18n/tr.js +4 -0
  60. package/dist/es2019/i18n/uk.js +4 -0
  61. package/dist/es2019/i18n/vi.js +4 -0
  62. package/dist/es2019/i18n/zh.js +4 -0
  63. package/dist/es2019/i18n/zh_TW.js +4 -0
  64. package/dist/es2019/messages.js +6 -0
  65. package/dist/es2019/state/actions/index.js +32 -12
  66. package/dist/es2019/state/hooks/use-resolve/index.js +28 -12
  67. package/dist/es2019/utils/analytics/SmartLinkAnalyticsContext.js +35 -0
  68. package/dist/es2019/version.json +1 -1
  69. package/dist/es2019/view/BlockCard/actions/PreviewAction.js +17 -13
  70. package/dist/es2019/view/BlockCard/index.js +3 -1
  71. package/dist/es2019/view/CardWithUrl/component.js +9 -2
  72. package/dist/es2019/view/FlexibleCard/components/actions/action/preview-action/index.js +7 -1
  73. package/dist/es2019/view/FlexibleCard/components/actions/utils.js +1 -1
  74. package/dist/es2019/view/HoverCard/components/HoverCardComponent.js +21 -2
  75. package/dist/es2019/view/HoverCard/components/views/resolved/index.js +36 -11
  76. package/dist/esm/extractors/block/index.js +5 -4
  77. package/dist/esm/extractors/common/actions/extractPreviewAction.js +4 -2
  78. package/dist/esm/i18n/cs.js +4 -0
  79. package/dist/esm/i18n/da.js +4 -0
  80. package/dist/esm/i18n/de.js +4 -0
  81. package/dist/esm/i18n/en_ZZ.js +54 -4
  82. package/dist/esm/i18n/es.js +4 -0
  83. package/dist/esm/i18n/fi.js +5 -0
  84. package/dist/esm/i18n/fr.js +4 -0
  85. package/dist/esm/i18n/hu.js +4 -0
  86. package/dist/esm/i18n/it.js +4 -0
  87. package/dist/esm/i18n/ja.js +4 -0
  88. package/dist/esm/i18n/ko.js +4 -0
  89. package/dist/esm/i18n/nb.js +4 -0
  90. package/dist/esm/i18n/nl.js +4 -0
  91. package/dist/esm/i18n/pl.js +4 -0
  92. package/dist/esm/i18n/pt_BR.js +4 -0
  93. package/dist/esm/i18n/ru.js +4 -0
  94. package/dist/esm/i18n/sv.js +4 -0
  95. package/dist/esm/i18n/th.js +4 -0
  96. package/dist/esm/i18n/tr.js +4 -0
  97. package/dist/esm/i18n/uk.js +4 -0
  98. package/dist/esm/i18n/vi.js +4 -0
  99. package/dist/esm/i18n/zh.js +4 -0
  100. package/dist/esm/i18n/zh_TW.js +4 -0
  101. package/dist/esm/messages.js +6 -0
  102. package/dist/esm/state/actions/index.js +27 -11
  103. package/dist/esm/state/hooks/use-resolve/index.js +28 -12
  104. package/dist/esm/utils/analytics/SmartLinkAnalyticsContext.js +36 -0
  105. package/dist/esm/version.json +1 -1
  106. package/dist/esm/view/BlockCard/actions/PreviewAction.js +4 -2
  107. package/dist/esm/view/BlockCard/index.js +3 -1
  108. package/dist/esm/view/CardWithUrl/component.js +11 -2
  109. package/dist/esm/view/FlexibleCard/components/actions/action/preview-action/index.js +7 -1
  110. package/dist/esm/view/FlexibleCard/components/actions/utils.js +1 -1
  111. package/dist/esm/view/HoverCard/components/HoverCardComponent.js +21 -2
  112. package/dist/esm/view/HoverCard/components/views/resolved/index.js +26 -3
  113. package/dist/types/extractors/block/index.d.ts +2 -2
  114. package/dist/types/extractors/block/types.d.ts +1 -0
  115. package/dist/types/extractors/common/actions/extractPreviewAction.d.ts +1 -1
  116. package/dist/types/i18n/cs.d.ts +4 -0
  117. package/dist/types/i18n/da.d.ts +4 -0
  118. package/dist/types/i18n/de.d.ts +4 -0
  119. package/dist/types/i18n/en_ZZ.d.ts +50 -0
  120. package/dist/types/i18n/es.d.ts +4 -0
  121. package/dist/types/i18n/fi.d.ts +5 -0
  122. package/dist/types/i18n/fr.d.ts +4 -0
  123. package/dist/types/i18n/hu.d.ts +4 -0
  124. package/dist/types/i18n/it.d.ts +4 -0
  125. package/dist/types/i18n/ja.d.ts +4 -0
  126. package/dist/types/i18n/ko.d.ts +4 -0
  127. package/dist/types/i18n/nb.d.ts +4 -0
  128. package/dist/types/i18n/nl.d.ts +4 -0
  129. package/dist/types/i18n/pl.d.ts +4 -0
  130. package/dist/types/i18n/pt_BR.d.ts +4 -0
  131. package/dist/types/i18n/ru.d.ts +4 -0
  132. package/dist/types/i18n/sv.d.ts +4 -0
  133. package/dist/types/i18n/th.d.ts +4 -0
  134. package/dist/types/i18n/tr.d.ts +4 -0
  135. package/dist/types/i18n/uk.d.ts +4 -0
  136. package/dist/types/i18n/vi.d.ts +4 -0
  137. package/dist/types/i18n/zh.d.ts +4 -0
  138. package/dist/types/i18n/zh_TW.d.ts +4 -0
  139. package/dist/types/messages.d.ts +1 -1
  140. package/dist/types/utils/analytics/SmartLinkAnalyticsContext.d.ts +9 -0
  141. package/dist/types/view/BlockCard/actions/PreviewAction.d.ts +2 -1
  142. package/dist/types/view/BlockCard/views/ResolvedView.d.ts +2 -0
  143. package/dist/types/view/CardWithUrl/component.d.ts +1 -1
  144. package/dist/types/view/HoverCard/components/views/resolved/index.d.ts +1 -1
  145. package/dist/types-ts4.5/extractors/block/index.d.ts +2 -2
  146. package/dist/types-ts4.5/extractors/block/types.d.ts +1 -0
  147. package/dist/types-ts4.5/extractors/common/actions/extractPreviewAction.d.ts +1 -1
  148. package/dist/types-ts4.5/i18n/cs.d.ts +4 -0
  149. package/dist/types-ts4.5/i18n/da.d.ts +4 -0
  150. package/dist/types-ts4.5/i18n/de.d.ts +4 -0
  151. package/dist/types-ts4.5/i18n/en_ZZ.d.ts +50 -0
  152. package/dist/types-ts4.5/i18n/es.d.ts +4 -0
  153. package/dist/types-ts4.5/i18n/fi.d.ts +5 -0
  154. package/dist/types-ts4.5/i18n/fr.d.ts +4 -0
  155. package/dist/types-ts4.5/i18n/hu.d.ts +4 -0
  156. package/dist/types-ts4.5/i18n/it.d.ts +4 -0
  157. package/dist/types-ts4.5/i18n/ja.d.ts +4 -0
  158. package/dist/types-ts4.5/i18n/ko.d.ts +4 -0
  159. package/dist/types-ts4.5/i18n/nb.d.ts +4 -0
  160. package/dist/types-ts4.5/i18n/nl.d.ts +4 -0
  161. package/dist/types-ts4.5/i18n/pl.d.ts +4 -0
  162. package/dist/types-ts4.5/i18n/pt_BR.d.ts +4 -0
  163. package/dist/types-ts4.5/i18n/ru.d.ts +4 -0
  164. package/dist/types-ts4.5/i18n/sv.d.ts +4 -0
  165. package/dist/types-ts4.5/i18n/th.d.ts +4 -0
  166. package/dist/types-ts4.5/i18n/tr.d.ts +4 -0
  167. package/dist/types-ts4.5/i18n/uk.d.ts +4 -0
  168. package/dist/types-ts4.5/i18n/vi.d.ts +4 -0
  169. package/dist/types-ts4.5/i18n/zh.d.ts +4 -0
  170. package/dist/types-ts4.5/i18n/zh_TW.d.ts +4 -0
  171. package/dist/types-ts4.5/messages.d.ts +1 -1
  172. package/dist/types-ts4.5/utils/analytics/SmartLinkAnalyticsContext.d.ts +9 -0
  173. package/dist/types-ts4.5/view/BlockCard/actions/PreviewAction.d.ts +2 -1
  174. package/dist/types-ts4.5/view/BlockCard/views/ResolvedView.d.ts +2 -0
  175. package/dist/types-ts4.5/view/CardWithUrl/component.d.ts +1 -1
  176. package/dist/types-ts4.5/view/HoverCard/components/views/resolved/index.d.ts +1 -1
  177. package/package.json +11 -3
  178. package/tmp/api-report-tmp.d.ts +0 -909
@@ -221,6 +221,12 @@ var messages = (0, _reactIntlNext.defineMessages)({
221
221
  defaultMessage: 'Owned by {context}',
222
222
  description: 'Indicates the person or entity that owns or maintains the resource.'
223
223
  },
224
+ // Move this to preview once FF has been merged
225
+ preview_improved: {
226
+ id: 'fabric.linking.preview_improved',
227
+ defaultMessage: 'Open preview',
228
+ description: 'Click to view a richer view of your content, without needing to navigate to it.'
229
+ },
224
230
  preview: {
225
231
  id: 'fabric.linking.preview',
226
232
  defaultMessage: 'Full screen view',
@@ -25,13 +25,20 @@ var useSmartCardActions = function useSmartCardActions(id, url, analytics) {
25
25
  connections = _useSmartLinkContext.connections;
26
26
  var getState = store.getState,
27
27
  dispatch = store.dispatch;
28
- var _ref = getState()[url] || {
29
- status: _constants.SmartLinkStatus.Pending,
30
- details: undefined
31
- },
32
- details = _ref.details,
33
- status = _ref.status,
34
- metadataStatus = _ref.metadataStatus;
28
+ var getSmartLinkState = (0, _react.useCallback)(function () {
29
+ var _getState$url;
30
+ var _ref = (_getState$url = getState()[url]) !== null && _getState$url !== void 0 ? _getState$url : {
31
+ status: _constants.SmartLinkStatus.Pending
32
+ },
33
+ details = _ref.details,
34
+ status = _ref.status,
35
+ metadataStatus = _ref.metadataStatus;
36
+ return {
37
+ details: details,
38
+ status: status,
39
+ metadataStatus: metadataStatus
40
+ };
41
+ }, [getState, url]);
35
42
  var setMetadataStatus = (0, _react.useCallback)(function (metadataStatus) {
36
43
  dispatch((0, _linkingCommon.cardAction)(_linkingCommon.ACTION_UPDATE_METADATA_STATUS, {
37
44
  url: url
@@ -56,6 +63,8 @@ var useSmartCardActions = function useSmartCardActions(id, url, analytics) {
56
63
  }, _callee);
57
64
  })), [id, resolveUrl, url]);
58
65
  var register = (0, _react.useCallback)(function () {
66
+ var _getSmartLinkState = getSmartLinkState(),
67
+ details = _getSmartLinkState.details;
59
68
  if (!details) {
60
69
  dispatch((0, _linkingCommon.cardAction)(_linkingCommon.ACTION_RESOLVING, {
61
70
  url: url
@@ -63,8 +72,10 @@ var useSmartCardActions = function useSmartCardActions(id, url, analytics) {
63
72
  setMetadataStatus('pending');
64
73
  }
65
74
  return resolve();
66
- }, [details, resolve, dispatch, url, setMetadataStatus]);
75
+ }, [getSmartLinkState, resolve, dispatch, url, setMetadataStatus]);
67
76
  var reload = (0, _react.useCallback)(function () {
77
+ var _getSmartLinkState2 = getSmartLinkState(),
78
+ details = _getSmartLinkState2.details;
68
79
  var definitionId = (0, _helpers.getDefinitionId)(details);
69
80
  if (definitionId) {
70
81
  (0, _helpers.getByDefinitionId)(definitionId, getState()).map(function (url) {
@@ -73,15 +84,20 @@ var useSmartCardActions = function useSmartCardActions(id, url, analytics) {
73
84
  } else {
74
85
  resolve(url, true);
75
86
  }
76
- }, [details, url, getState, resolve]);
87
+ }, [getSmartLinkState, url, getState, resolve]);
77
88
  var loadMetadata = (0, _react.useCallback)(function () {
89
+ var _getSmartLinkState3 = getSmartLinkState(),
90
+ metadataStatus = _getSmartLinkState3.metadataStatus;
78
91
  //metadataStatus will be undefined for SSR links only
79
92
  if (metadataStatus === undefined) {
80
93
  setMetadataStatus('pending');
81
94
  return resolve(url, false, true);
82
95
  }
83
- }, [metadataStatus, resolve, setMetadataStatus, url]);
96
+ }, [getSmartLinkState, resolve, setMetadataStatus, url]);
84
97
  var authorize = (0, _react.useCallback)(function (appearance) {
98
+ var _getSmartLinkState4 = getSmartLinkState(),
99
+ details = _getSmartLinkState4.details,
100
+ status = _getSmartLinkState4.status;
85
101
  var definitionId = (0, _helpers.getDefinitionId)(details);
86
102
  var extensionKey = (0, _helpers.getExtensionKey)(details);
87
103
  var services = (0, _helpers.getServices)(details);
@@ -133,7 +149,7 @@ var useSmartCardActions = function useSmartCardActions(id, url, analytics) {
133
149
  reload();
134
150
  });
135
151
  }
136
- }, [analytics.ui, analytics.screen, analytics.track, analytics.operational, id, reload, details, status]);
152
+ }, [getSmartLinkState, analytics.ui, analytics.screen, analytics.track, analytics.operational, id, reload]);
137
153
  var invoke = (0, _react.useCallback)( /*#__PURE__*/function () {
138
154
  var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(opts, appearance) {
139
155
  var key, action, source, markName, response;
@@ -8,9 +8,11 @@ exports.default = void 0;
8
8
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
10
  var _react = require("react");
11
+ var _reactDom = require("react-dom");
11
12
  var _analytics = require("../../analytics");
12
13
  var _helpers = require("../../helpers");
13
14
  var _linkingCommon = require("@atlaskit/linking-common");
15
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
14
16
  var _constants = require("../../actions/constants");
15
17
  var _jsonld = require("../../../utils/jsonld");
16
18
  var _constants2 = require("../../../constants");
@@ -80,6 +82,20 @@ var useResolve = function useResolve() {
80
82
  }
81
83
  }
82
84
  }, [getState, setMetadataStatus, dispatch]);
85
+ var handleResolvedLinkSuccess = (0, _react.useCallback)(function (resourceUrl, response, isReloading, isMetadataRequest) {
86
+ //if a link resolves normally, metadata will also always be resolved
87
+ setMetadataStatus(resourceUrl, 'resolved');
88
+ // Dispatch Analytics and resolved card action - including unauthorized states.
89
+ if (isReloading) {
90
+ dispatch((0, _linkingCommon.cardAction)(_linkingCommon.ACTION_RELOADING, {
91
+ url: resourceUrl
92
+ }, response));
93
+ } else {
94
+ dispatch((0, _linkingCommon.cardAction)(_linkingCommon.ACTION_RESOLVED, {
95
+ url: resourceUrl
96
+ }, response, undefined, undefined, isMetadataRequest));
97
+ }
98
+ }, [setMetadataStatus, dispatch]);
83
99
  var handleResolvedLinkResponse = (0, _react.useCallback)(function (resourceUrl, response) {
84
100
  var isReloading = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
85
101
  var isMetadataRequest = arguments.length > 3 ? arguments[3] : undefined;
@@ -104,20 +120,20 @@ var useResolve = function useResolve() {
104
120
  handleResolvedLinkError(resourceUrl, new _linkingCommon.APIError('error', hostname, _constants.ERROR_MESSAGE_METADATA), response, isMetadataRequest);
105
121
  return;
106
122
  }
107
-
108
- //if a link resolves normally, metadata will also always be resolved
109
- setMetadataStatus(resourceUrl, 'resolved');
110
- // Dispatch Analytics and resolved card action - including unauthorized states.
111
- if (isReloading) {
112
- dispatch((0, _linkingCommon.cardAction)(_linkingCommon.ACTION_RELOADING, {
113
- url: resourceUrl
114
- }, response));
123
+ if ((0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.smart-card.enable-analytics-context')) {
124
+ /**
125
+ * Using unstable_batchedUpdates because this store update happens async and trigers a rerender
126
+ * more info:
127
+ * https://github.com/facebook/react/blob/v18.2.0/packages/use-sync-external-store/src/useSyncExternalStoreShimClient.js#L113
128
+ * https://react-redux.js.org/api/batch
129
+ */
130
+ (0, _reactDom.unstable_batchedUpdates)(function () {
131
+ handleResolvedLinkSuccess(resourceUrl, response, isReloading, isMetadataRequest);
132
+ });
115
133
  } else {
116
- dispatch((0, _linkingCommon.cardAction)(_linkingCommon.ACTION_RESOLVED, {
117
- url: resourceUrl
118
- }, response, undefined, undefined, isMetadataRequest));
134
+ handleResolvedLinkSuccess(resourceUrl, response, isReloading, isMetadataRequest);
119
135
  }
120
- }, [dispatch, handleResolvedLinkError, hasAuthFlowSupported, setMetadataStatus]);
136
+ }, [handleResolvedLinkError, handleResolvedLinkSuccess, hasAuthFlowSupported]);
121
137
  return (0, _react.useCallback)( /*#__PURE__*/function () {
122
138
  var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(url) {
123
139
  var isReloading,
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.SmartLinkAnalyticsContext = void 0;
9
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
+ var _react = _interopRequireWildcard(require("react"));
11
+ var _analyticsNext = require("@atlaskit/analytics-next");
12
+ var _resolvedAttributes = require("@atlaskit/link-analytics/resolved-attributes");
13
+ var _flexible = require("../flexible");
14
+ var _constants = require("../../constants");
15
+ var _store = require("../../state/store");
16
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
17
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
18
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
19
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
20
+ var SmartLinkAnalyticsContext = function SmartLinkAnalyticsContext(_ref) {
21
+ var children = _ref.children,
22
+ url = _ref.url,
23
+ appearance = _ref.appearance,
24
+ id = _ref.id;
25
+ var _useSmartLinkState = (0, _store.useSmartCardState)(url),
26
+ details = _useSmartLinkState.details,
27
+ status = _useSmartLinkState.status;
28
+ var resolvedAttributes = (0, _resolvedAttributes.getResolvedAttributes)({
29
+ url: url
30
+ }, details, status);
31
+ var _getUrlAttributes = (0, _resolvedAttributes.getUrlAttributes)(url),
32
+ urlHash = _getUrlAttributes.urlHash;
33
+ var isFlexibleUi = (0, _react.useMemo)(function () {
34
+ return (0, _flexible.isFlexibleUiCard)(children);
35
+ }, [children]);
36
+ var display = isFlexibleUi ? _constants.CardDisplay.Flexible : appearance;
37
+ return /*#__PURE__*/_react.default.createElement(_analyticsNext.AnalyticsContext, {
38
+ data: {
39
+ attributes: _objectSpread(_objectSpread({}, resolvedAttributes), {}, {
40
+ urlHash: urlHash,
41
+ display: display,
42
+ id: id
43
+ })
44
+ }
45
+ }, children);
46
+ };
47
+ exports.SmartLinkAnalyticsContext = SmartLinkAnalyticsContext;
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/smart-card",
3
- "version": "26.2.0",
3
+ "version": "26.2.2",
4
4
  "sideEffects": false
5
5
  }
@@ -17,7 +17,7 @@ var _reactDom = _interopRequireDefault(require("react-dom"));
17
17
  var _reactIntlNext = require("react-intl-next");
18
18
  var _messages = require("../../../messages");
19
19
  var _excluded = ["popupMountPointId", "onClose"],
20
- _excluded2 = ["details"];
20
+ _excluded2 = ["details", "enableImprovedPreviewAction"];
21
21
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
22
22
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
23
23
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
@@ -82,10 +82,12 @@ function _previewFunction() {
82
82
  }
83
83
  var _default = function _default(_ref2) {
84
84
  var details = _ref2.details,
85
+ enableImprovedPreviewAction = _ref2.enableImprovedPreviewAction,
85
86
  rest = (0, _objectWithoutProperties2.default)(_ref2, _excluded2);
87
+ var previewText = enableImprovedPreviewAction ? _messages.messages.preview_improved : _messages.messages.preview;
86
88
  return {
87
89
  id: 'preview-content',
88
- text: /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.messages.preview),
90
+ text: /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, previewText),
89
91
  promise: function promise(props) {
90
92
  return previewFunction(_objectSpread(_objectSpread({
91
93
  popupMountPointId: 'twp-editor-preview-iframe',
@@ -82,6 +82,7 @@ var _FlexibleForbiddenView = _interopRequireDefault(require("./views/flexible/Fl
82
82
  var _token = require("../../utils/token");
83
83
  var _react = require("@emotion/react");
84
84
  var _handlers = require("./utils/handlers");
85
+ var _linkProvider = require("@atlaskit/link-provider");
85
86
  var _PreviewAction = _interopRequireDefault(require("./actions/PreviewAction"));
86
87
  var _templateObject;
87
88
  /** @jsx jsx */
@@ -117,6 +118,7 @@ var BlockCard = function BlockCard(_ref) {
117
118
  handleInvoke: handleInvoke,
118
119
  extensionKey: extensionKey
119
120
  };
121
+ var enableImprovedPreviewAction = Boolean((0, _linkProvider.useFeatureFlag)('enableImprovedPreviewAction'));
120
122
  if (enableFlexibleBlockCard) {
121
123
  var ui = {
122
124
  hideElevation: true
@@ -199,7 +201,7 @@ var BlockCard = function BlockCard(_ref) {
199
201
  isSelected: isSelected
200
202
  });
201
203
  case 'resolved':
202
- var resolvedViewProps = (0, _block.extractBlockProps)(data, meta, extractorOpts, renderers, platform);
204
+ var resolvedViewProps = (0, _block.extractBlockProps)(data, meta, extractorOpts, renderers, platform, enableImprovedPreviewAction);
203
205
  if (onResolve) {
204
206
  onResolve({
205
207
  title: resolvedViewProps.title,
@@ -5,10 +5,11 @@ var _typeof = require("@babel/runtime/helpers/typeof");
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.CardWithUrlContent = CardWithUrlContent;
8
+ exports.CardWithUrlContent = void 0;
9
9
  var _react = _interopRequireWildcard(require("react"));
10
10
  var _analyticsNext = require("@atlaskit/analytics-next");
11
11
  var _linkProvider = require("@atlaskit/link-provider");
12
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
12
13
  var _utils = require("../../utils");
13
14
  var measure = _interopRequireWildcard(require("../../utils/performance"));
14
15
  var _helpers = require("../../state/helpers");
@@ -20,9 +21,10 @@ var _flexible = require("../../utils/flexible");
20
21
  var _FlexibleCard = _interopRequireDefault(require("../FlexibleCard"));
21
22
  var _constants = require("../../constants");
22
23
  var _click = require("../../utils/analytics/click");
24
+ var _SmartLinkAnalyticsContext = require("../../utils/analytics/SmartLinkAnalyticsContext");
23
25
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
24
26
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
25
- function CardWithUrlContent(_ref) {
27
+ function Component(_ref) {
26
28
  var id = _ref.id,
27
29
  url = _ref.url,
28
30
  isSelected = _ref.isSelected,
@@ -268,4 +270,12 @@ function CardWithUrlContent(_ref) {
268
270
  onIframeFocus: onIframeFocus
269
271
  });
270
272
  }
271
- }
273
+ }
274
+ var CardWithUrlContent = function CardWithUrlContent(props) {
275
+ return (0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.smart-card.enable-analytics-context') ? /*#__PURE__*/_react.default.createElement(_SmartLinkAnalyticsContext.SmartLinkAnalyticsContext, {
276
+ url: props.url,
277
+ appearance: props.appearance,
278
+ id: props.id
279
+ }, /*#__PURE__*/_react.default.createElement(Component, props)) : /*#__PURE__*/_react.default.createElement(Component, props);
280
+ };
281
+ exports.CardWithUrlContent = CardWithUrlContent;
@@ -12,6 +12,9 @@ var _index = _interopRequireDefault(require("../index"));
12
12
  var _flexibleUiContext = require("../../../../../../state/flexible-ui-context");
13
13
  var _state = require("../../../../../../state");
14
14
  var _utils = require("../../../../../EmbedModal/utils");
15
+ var _reactIntlNext = require("react-intl-next");
16
+ var _messages = require("../../../../../../messages");
17
+ var _linkProvider = require("@atlaskit/link-provider");
15
18
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
16
19
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
17
20
  var PreviewAction = function PreviewAction(props) {
@@ -28,6 +31,8 @@ var PreviewAction = function PreviewAction(props) {
28
31
  isSupportTheming = props.isSupportTheming;
29
32
  var defaultAnalytics = (0, _state.useSmartLinkAnalytics)(url, function () {});
30
33
  var analytics = (0, _flexibleUiContext.useFlexibleUiAnalyticsContext)() || defaultAnalytics;
34
+ var enableImprovedPreviewAction = Boolean((0, _linkProvider.useFeatureFlag)('enableImprovedPreviewAction'));
35
+ var previewText = enableImprovedPreviewAction ? _messages.messages.preview_improved : _messages.messages.preview;
31
36
  if (src && url) {
32
37
  var embedModal = function embedModal() {
33
38
  return (0, _utils.openPreviewModal)({
@@ -46,7 +51,8 @@ var PreviewAction = function PreviewAction(props) {
46
51
  if (_onClick) {
47
52
  _onClick();
48
53
  }
49
- }
54
+ },
55
+ content: /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, previewText)
50
56
  });
51
57
  return /*#__PURE__*/_react.default.createElement(_index.default, (0, _extends2.default)({}, action, {
52
58
  appearance: appearance,
@@ -57,7 +57,7 @@ var actionMappings = (_actionMappings = {}, (0, _defineProperty2.default)(_actio
57
57
  testId: 'smart-action-preview-action',
58
58
  content: /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.messages.preview),
59
59
  icon: /*#__PURE__*/_react.default.createElement(_vidFullScreenOn.default, {
60
- label: "Full screen view"
60
+ label: "Open preview"
61
61
  }),
62
62
  tooltipMessage: /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.messages.preview)
63
63
  }
@@ -8,6 +8,7 @@ Object.defineProperty(exports, "__esModule", {
8
8
  exports.HoverCardComponent = void 0;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
10
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
11
12
  var _popup = _interopRequireDefault(require("@atlaskit/popup"));
12
13
  var _react = require("@emotion/react");
13
14
  var _react2 = _interopRequireWildcard(require("react"));
@@ -17,6 +18,7 @@ var _store = require("../../../state/store");
17
18
  var _HoverCardContent = _interopRequireDefault(require("../components/HoverCardContent"));
18
19
  var _styled = require("../styled");
19
20
  var _constants = require("../../../constants");
21
+ var _SmartLinkAnalyticsContext = require("../../../utils/analytics/SmartLinkAnalyticsContext");
20
22
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
21
23
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
22
24
  /** @jsx jsx */
@@ -24,6 +26,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
24
26
  var HoverCardComponent = function HoverCardComponent(_ref) {
25
27
  var children = _ref.children,
26
28
  url = _ref.url,
29
+ id = _ref.id,
27
30
  analyticsHandler = _ref.analyticsHandler,
28
31
  analytics = _ref.analytics,
29
32
  _ref$canOpen = _ref.canOpen,
@@ -133,7 +136,23 @@ var HoverCardComponent = function HoverCardComponent(_ref) {
133
136
  }, [closeOnChildClick, hideCard]);
134
137
  var content = (0, _react2.useCallback)(function (_ref2) {
135
138
  var update = _ref2.update;
136
- return (0, _react.jsx)(_HoverCardContent.default, {
139
+ return (0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.smart-card.enable-analytics-context') ? (0, _react.jsx)(_SmartLinkAnalyticsContext.SmartLinkAnalyticsContext, {
140
+ url: url,
141
+ appearance: _constants.CardDisplay.HoverCardPreview,
142
+ id: id
143
+ }, (0, _react.jsx)(_HoverCardContent.default, {
144
+ onMouseEnter: initShowCard,
145
+ onMouseLeave: initHideCard,
146
+ analytics: analytics,
147
+ cardActions: filteredActions,
148
+ cardState: linkState,
149
+ onActionClick: onActionClick,
150
+ onResolve: update,
151
+ renderers: renderers,
152
+ showServerActions: showServerActions,
153
+ url: url,
154
+ id: id
155
+ })) : (0, _react.jsx)(_HoverCardContent.default, {
137
156
  onMouseEnter: initShowCard,
138
157
  onMouseLeave: initHideCard,
139
158
  analytics: analytics,
@@ -145,7 +164,7 @@ var HoverCardComponent = function HoverCardComponent(_ref) {
145
164
  showServerActions: showServerActions,
146
165
  url: url
147
166
  });
148
- }, [analytics, initHideCard, initShowCard, filteredActions, linkState, onActionClick, renderers, showServerActions, url]);
167
+ }, [analytics, initHideCard, initShowCard, filteredActions, linkState, onActionClick, renderers, showServerActions, url, id]);
149
168
  var trigger = (0, _react2.useCallback)(function (triggerProps) {
150
169
  return (0, _react.jsx)("span", {
151
170
  ref: parentSpan
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.toFooterActions = exports.default = void 0;
9
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
10
  var _react = _interopRequireWildcard(require("react"));
10
11
  var _linkProvider = require("@atlaskit/link-provider");
11
12
  var _extractors = require("@atlaskit/linking-common/extractors");
@@ -16,10 +17,31 @@ var _FlexibleCard = _interopRequireDefault(require("../../../../FlexibleCard"));
16
17
  var _utils = require("../../../utils");
17
18
  var _SnippetOrPreview = _interopRequireDefault(require("../../SnippetOrPreview"));
18
19
  var _extractMetadata = require("../../../../../extractors/hover/extractMetadata");
20
+ var _messages = require("../../../../../messages");
21
+ var _reactIntlNext = require("react-intl-next");
19
22
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
20
23
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
21
- var toFooterActions = function toFooterActions(cardActions, onActionClick) {
24
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
25
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
26
+ var toFooterActions = function toFooterActions(cardActions, onActionClick, enableImprovedPreviewAction) {
27
+ var appearance = enableImprovedPreviewAction ? {
28
+ appearance: 'primary'
29
+ } : undefined;
30
+ var previewText = enableImprovedPreviewAction ? _messages.messages.preview_improved : _messages.messages.preview;
22
31
  return cardActions.map(function (action) {
32
+ if (action.id === 'preview-content') {
33
+ return _objectSpread({
34
+ content: /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, previewText),
35
+ name: _constants.ActionName.CustomAction,
36
+ onClick: function onClick() {
37
+ if (onActionClick) {
38
+ onActionClick(action.id);
39
+ }
40
+ return action.invoke();
41
+ },
42
+ testId: action.id
43
+ }, appearance);
44
+ }
23
45
  return {
24
46
  content: action.text,
25
47
  name: _constants.ActionName.CustomAction,
@@ -48,6 +70,7 @@ var HoverCardResolvedView = function HoverCardResolvedView(_ref) {
48
70
  onActionClick = _ref.onActionClick,
49
71
  extensionKey = _ref.extensionKey;
50
72
  var showActionableElement = (0, _linkProvider.useFeatureFlag)('enableActionableElement');
73
+ var enableImprovedPreviewAction = (0, _linkProvider.useFeatureFlag)('enableImprovedPreviewAction');
51
74
  (0, _react.useEffect)(function () {
52
75
  // Since this hover view is only rendered on resolved status,
53
76
  // there is no need to check for statuses.
@@ -57,8 +80,8 @@ var HoverCardResolvedView = function HoverCardResolvedView(_ref) {
57
80
  });
58
81
  }, [analytics.ui, cardState.status]);
59
82
  var footerActions = (0, _react.useMemo)(function () {
60
- return toFooterActions(cardActions, onActionClick);
61
- }, [cardActions, onActionClick]);
83
+ return toFooterActions(cardActions, onActionClick, Boolean(enableImprovedPreviewAction));
84
+ }, [cardActions, onActionClick, enableImprovedPreviewAction]);
62
85
  var data = (_cardState$details = cardState.details) === null || _cardState$details === void 0 ? void 0 : _cardState$details.data;
63
86
  var _useMemo = (0, _react.useMemo)(function () {
64
87
  var types = data ? (0, _extractors.extractType)(data) : undefined;
@@ -21,7 +21,7 @@ const extractBlockIcon = jsonLd => {
21
21
  }
22
22
  };
23
23
  const extractBlockDetails = jsonLd => [extractCommentCount(jsonLd), extractProgrammingLanguage(jsonLd), extractSubscriberCount(jsonLd), extractAttachmentCount(jsonLd)].filter(detail => !!detail);
24
- export const extractBlockActions = (props, jsonLd, opts, platform, meta) => {
24
+ export const extractBlockActions = (props, jsonLd, opts, platform, meta, enableImprovedPreviewAction) => {
25
25
  if (opts) {
26
26
  const {
27
27
  handleInvoke
@@ -32,7 +32,8 @@ export const extractBlockActions = (props, jsonLd, opts, platform, meta) => {
32
32
  viewProps: props,
33
33
  jsonLd,
34
34
  platform,
35
- meta
35
+ meta,
36
+ enableImprovedPreviewAction
36
37
  });
37
38
 
38
39
  // The previewAction should always be the last action
@@ -63,7 +64,7 @@ export const extractBlockUsers = jsonLd => {
63
64
  return updatedByMembers || createdByMembers;
64
65
  }
65
66
  };
66
- export const extractBlockProps = (jsonLd, meta, opts, renderers, platform) => {
67
+ export const extractBlockProps = (jsonLd, meta, opts, renderers, platform, enableImprovedPreviewAction) => {
67
68
  const props = {
68
69
  link: extractLink(jsonLd),
69
70
  title: extractTitle(jsonLd),
@@ -80,6 +81,6 @@ export const extractBlockProps = (jsonLd, meta, opts, renderers, platform) => {
80
81
  };
81
82
  return {
82
83
  ...props,
83
- actions: extractBlockActions(props, jsonLd, opts, platform, meta)
84
+ actions: extractBlockActions(props, jsonLd, opts, platform, meta, enableImprovedPreviewAction)
84
85
  };
85
86
  };
@@ -46,7 +46,8 @@ export const extractPreviewAction = ({
46
46
  origin,
47
47
  source = 'block',
48
48
  analytics,
49
- meta
49
+ meta,
50
+ enableImprovedPreviewAction
50
51
  }) => {
51
52
  // Extract metadata from view props & raw JSON-LD.
52
53
  const metadataFromJsonLd = getMetadataFromJsonLd(jsonLd, platform);
@@ -70,7 +71,8 @@ export const extractPreviewAction = ({
70
71
  onViewActionClick: () => {
71
72
  handleInvoke(getInvokeOpts(key, 'ViewAction'));
72
73
  },
73
- isSupportTheming: extractIsSupportTheming(meta)
74
+ isSupportTheming: extractIsSupportTheming(meta),
75
+ enableImprovedPreviewAction
74
76
  });
75
77
  // Setup props to go through proper Redux 'invocation' flow
76
78
  // for analytics, further state management if required in future.
@@ -47,6 +47,7 @@ export default {
47
47
  'fabric.linking.more_actions': 'Další akce',
48
48
  'fabric.linking.not_found_description': 'Odkaz se nepodařilo najít. Zkontrolujte adresu URL a zkuste ji upravit nebo vložit znovu.',
49
49
  'fabric.linking.not_found_title': 'Jejda. Tento odkaz se nepodařilo najít.',
50
+ 'fabric.linking.open_issue_in_jira': 'Otevřít požadavek v Jira',
50
51
  'fabric.linking.open_link_in_a_new_tab': 'Otevřít odkaz na nové kartě',
51
52
  'fabric.linking.owned_by': 'Vlastník: {context}',
52
53
  'fabric.linking.pending_request': 'Vaše žádost o přístup čeká na vyřízení.',
@@ -77,6 +78,9 @@ export default {
77
78
  'fabric.linking.save': 'Uložit',
78
79
  'fabric.linking.srclink': 'Zobrazit v',
79
80
  'fabric.linking.srclinkunknown': 'Zobrazit originál',
81
+ 'fabric.linking.status_change_load_error': 'Načtení stavů a přechodů se nezdařilo',
82
+ 'fabric.linking.status_change_permission_error': 'K provedení přechodu tohoto požadavku nemáte oprávnění.',
83
+ 'fabric.linking.status_change_update_error': 'Aktualizace stavu se nezdařila',
80
84
  'fabric.linking.try_again': 'Zkusit znovu',
81
85
  'fabric.linking.try_another_account': 'Zkuste jiný účet',
82
86
  'fabric.linking.unlink_account': 'Odpojit účet',
@@ -47,6 +47,7 @@ export default {
47
47
  'fabric.linking.more_actions': 'Flere handlinger',
48
48
  'fabric.linking.not_found_description': 'Vi kunne ikke finde linket. Kontrollér og rediger URL-adressen, eller indsæt den igen.',
49
49
  'fabric.linking.not_found_title': 'Ups. Vi kan ikke finde dette link!',
50
+ 'fabric.linking.open_issue_in_jira': 'Åbn sag i Jira',
50
51
  'fabric.linking.open_link_in_a_new_tab': 'Åbn link i en ny fane',
51
52
  'fabric.linking.owned_by': 'Ejet af {context}',
52
53
  'fabric.linking.pending_request': 'Din anmodning om adgang afventer behandling',
@@ -77,6 +78,9 @@ export default {
77
78
  'fabric.linking.save': 'Gem',
78
79
  'fabric.linking.srclink': 'Vis i',
79
80
  'fabric.linking.srclinkunknown': 'Vis original',
81
+ 'fabric.linking.status_change_load_error': 'Vi kunne ikke indlæse statusser og overførsler',
82
+ 'fabric.linking.status_change_permission_error': 'Du har ikke tilladelse til at overføre denne sag.',
83
+ 'fabric.linking.status_change_update_error': 'Vi kunne ikke opdatere statussen',
80
84
  'fabric.linking.try_again': 'Prøv igen',
81
85
  'fabric.linking.try_another_account': 'Prøv en anden konto',
82
86
  'fabric.linking.unlink_account': 'Fjern link til konto',
@@ -47,6 +47,7 @@ export default {
47
47
  'fabric.linking.more_actions': 'Weitere Aktionen',
48
48
  'fabric.linking.not_found_description': 'Der Link konnte nicht gefunden werden. Überprüfen Sie die URL und versuchen Sie die Bearbeitung oder das Einfügen erneut.',
49
49
  'fabric.linking.not_found_title': 'Oh! Diese Verknüpfung konnte nicht gefunden werden!',
50
+ 'fabric.linking.open_issue_in_jira': 'Vorgang in Jira öffnen',
50
51
  'fabric.linking.open_link_in_a_new_tab': 'Link in neuer Registerkarte öffnen',
51
52
  'fabric.linking.owned_by': 'Besitzer: {context}',
52
53
  'fabric.linking.pending_request': 'Ihre Zugriffsanfrage ist ausstehend.',
@@ -77,6 +78,9 @@ export default {
77
78
  'fabric.linking.save': 'Speichern',
78
79
  'fabric.linking.srclink': 'Anzeigen in',
79
80
  'fabric.linking.srclinkunknown': 'Original anzeigen',
81
+ 'fabric.linking.status_change_load_error': 'Status und Übergänge konnten nicht geladen werden',
82
+ 'fabric.linking.status_change_permission_error': 'Sie sind nicht berechtigt, diesen Vorgang weiterzugeben.',
83
+ 'fabric.linking.status_change_update_error': 'Der Status konnte nicht aktualisiert werden',
80
84
  'fabric.linking.try_again': 'Versuchen Sie es erneut.',
81
85
  'fabric.linking.try_another_account': 'Versuchen Sie es mit einem anderen Konto erneut.',
82
86
  'fabric.linking.unlink_account': 'Kontoverknüpfung löschen',