@atlaskit/smart-card 43.6.5 → 43.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/dist/cjs/utils/analytics/analytics.js +1 -1
- package/dist/cjs/view/FlexibleCard/components/container/index.js +2 -1
- package/dist/cjs/view/FlexibleCard/components/elements/common/base-lozenge-element/index.js +4 -2
- package/dist/cjs/view/FlexibleCard/components/elements/common/base-lozenge-element/lozenge-action/index.js +13 -11
- package/dist/cjs/view/HoverCard/components/HoverCardComponent.js +3 -2
- package/dist/cjs/view/HoverCard/components/HoverCardContent.js +8 -1
- package/dist/cjs/view/LinkUrl/index.js +1 -1
- package/dist/es2019/utils/analytics/analytics.js +1 -1
- package/dist/es2019/view/FlexibleCard/components/container/index.js +2 -1
- package/dist/es2019/view/FlexibleCard/components/elements/common/base-lozenge-element/index.js +4 -2
- package/dist/es2019/view/FlexibleCard/components/elements/common/base-lozenge-element/lozenge-action/index.js +4 -2
- package/dist/es2019/view/HoverCard/components/HoverCardComponent.js +3 -2
- package/dist/es2019/view/HoverCard/components/HoverCardContent.js +8 -1
- package/dist/es2019/view/LinkUrl/index.js +1 -1
- package/dist/esm/utils/analytics/analytics.js +1 -1
- package/dist/esm/view/FlexibleCard/components/container/index.js +2 -1
- package/dist/esm/view/FlexibleCard/components/elements/common/base-lozenge-element/index.js +4 -2
- package/dist/esm/view/FlexibleCard/components/elements/common/base-lozenge-element/lozenge-action/index.js +13 -11
- package/dist/esm/view/HoverCard/components/HoverCardComponent.js +3 -2
- package/dist/esm/view/HoverCard/components/HoverCardContent.js +8 -1
- package/dist/esm/view/LinkUrl/index.js +1 -1
- package/dist/types/view/FlexibleCard/components/blocks/types.d.ts +1 -0
- package/dist/types/view/FlexibleCard/components/elements/common/base-lozenge-element/index.d.ts +5 -1
- package/dist/types/view/FlexibleCard/components/elements/common/base-lozenge-element/lozenge-action/types.d.ts +1 -0
- package/dist/types/view/HoverCard/components/HoverCardContent.d.ts +1 -1
- package/dist/types/view/HoverCard/types.d.ts +5 -0
- package/dist/types-ts4.5/view/FlexibleCard/components/blocks/types.d.ts +1 -0
- package/dist/types-ts4.5/view/FlexibleCard/components/elements/common/base-lozenge-element/index.d.ts +5 -1
- package/dist/types-ts4.5/view/FlexibleCard/components/elements/common/base-lozenge-element/lozenge-action/types.d.ts +1 -0
- package/dist/types-ts4.5/view/HoverCard/components/HoverCardContent.d.ts +1 -1
- package/dist/types-ts4.5/view/HoverCard/types.d.ts +5 -0
- package/package.json +11 -8
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# @atlaskit/smart-card
|
|
2
2
|
|
|
3
|
+
## 43.7.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [`b1b3d2990d636`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/b1b3d2990d636) -
|
|
8
|
+
add a new optional render props in HoverPreviewOptions to render a custom component
|
|
9
|
+
|
|
3
10
|
## 43.6.5
|
|
4
11
|
|
|
5
12
|
### Patch Changes
|
|
@@ -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: "
|
|
14
|
+
packageVersion: "0.0.0-development"
|
|
15
15
|
};
|
|
16
16
|
var TrackQuickActionType = exports.TrackQuickActionType = /*#__PURE__*/function (TrackQuickActionType) {
|
|
17
17
|
TrackQuickActionType["StatusUpdate"] = "StatusUpdate";
|
|
@@ -12,6 +12,7 @@ require("./index.compiled.css");
|
|
|
12
12
|
var _runtime = require("@compiled/react/runtime");
|
|
13
13
|
var _react = _interopRequireDefault(require("react"));
|
|
14
14
|
var _reactMagneticDi = require("react-magnetic-di");
|
|
15
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
15
16
|
var _constants = require("../../../../constants");
|
|
16
17
|
var _flexibleUiContext = require("../../../../state/flexible-ui-context");
|
|
17
18
|
var _utils = require("../../../../state/flexible-ui-context/utils");
|
|
@@ -191,7 +192,7 @@ var Container = function Container(_ref3) {
|
|
|
191
192
|
var _getChildrenOptions = getChildrenOptions(children, context),
|
|
192
193
|
previewOnLeft = _getChildrenOptions.previewOnLeft,
|
|
193
194
|
previewOnRight = _getChildrenOptions.previewOnRight;
|
|
194
|
-
var canShowHoverPreview = showHoverPreview && status === 'resolved';
|
|
195
|
+
var canShowHoverPreview = showHoverPreview && (status === 'resolved' || (hoverPreviewOptions === null || hoverPreviewOptions === void 0 ? void 0 : hoverPreviewOptions.render) !== undefined && (0, _platformFeatureFlags.fg)('smart-link-custom-hover-card-content'));
|
|
195
196
|
// `retry` object contains action that can be performed on
|
|
196
197
|
// unresolved link (unauthorized, forbidden, not found, etc.)
|
|
197
198
|
var canShowAuthTooltip = showHoverPreview && status === 'unauthorized' && retry !== undefined;
|
|
@@ -33,7 +33,8 @@ var BaseLozengeElement = function BaseLozengeElement(_ref) {
|
|
|
33
33
|
style = _ref.style,
|
|
34
34
|
text = _ref.text,
|
|
35
35
|
_ref$testId = _ref.testId,
|
|
36
|
-
testId = _ref$testId === void 0 ? 'smart-element-lozenge' : _ref$testId
|
|
36
|
+
testId = _ref$testId === void 0 ? 'smart-element-lozenge' : _ref$testId,
|
|
37
|
+
onAfterChanged = _ref.onAfterChanged;
|
|
37
38
|
var ui = (0, _flexibleUiContext.useFlexibleUiOptionContext)();
|
|
38
39
|
if (!text) {
|
|
39
40
|
return null;
|
|
@@ -43,7 +44,8 @@ var BaseLozengeElement = function BaseLozengeElement(_ref) {
|
|
|
43
44
|
appearance: appearance,
|
|
44
45
|
testId: testId,
|
|
45
46
|
text: text,
|
|
46
|
-
zIndex: ui === null || ui === void 0 ? void 0 : ui.zIndex
|
|
47
|
+
zIndex: ui === null || ui === void 0 ? void 0 : ui.zIndex,
|
|
48
|
+
onAfterChanged: onAfterChanged
|
|
47
49
|
}) : /*#__PURE__*/React.createElement(_lozenge.default, (0, _extends2.default)({
|
|
48
50
|
appearance: appearance
|
|
49
51
|
}, (0, _platformFeatureFlags.fg)('platform-component-visual-refresh') ? {
|
|
@@ -41,7 +41,8 @@ var LozengeAction = function LozengeAction(_ref) {
|
|
|
41
41
|
_ref$testId = _ref.testId,
|
|
42
42
|
testId = _ref$testId === void 0 ? 'smart-element-lozenge-action' : _ref$testId,
|
|
43
43
|
text = _ref.text,
|
|
44
|
-
zIndex = _ref.zIndex
|
|
44
|
+
zIndex = _ref.zIndex,
|
|
45
|
+
onAfterChanged = _ref.onAfterChanged;
|
|
45
46
|
var _useState = (0, _react.useState)({
|
|
46
47
|
appearance: appearance,
|
|
47
48
|
text: text
|
|
@@ -160,7 +161,7 @@ var LozengeAction = function LozengeAction(_ref) {
|
|
|
160
161
|
fireEvent('ui.button.clicked.smartLinkStatusListItem', {});
|
|
161
162
|
updateAction = action === null || action === void 0 ? void 0 : action.update;
|
|
162
163
|
if (!(updateAction && id)) {
|
|
163
|
-
_context2.next =
|
|
164
|
+
_context2.next = 18;
|
|
164
165
|
break;
|
|
165
166
|
}
|
|
166
167
|
setIsLoading(true);
|
|
@@ -168,6 +169,7 @@ var LozengeAction = function LozengeAction(_ref) {
|
|
|
168
169
|
_context2.next = 8;
|
|
169
170
|
return invoke(request);
|
|
170
171
|
case 8:
|
|
172
|
+
onAfterChanged === null || onAfterChanged === void 0 || onAfterChanged();
|
|
171
173
|
setSelected({
|
|
172
174
|
appearance: appearance,
|
|
173
175
|
text: text
|
|
@@ -180,16 +182,16 @@ var LozengeAction = function LozengeAction(_ref) {
|
|
|
180
182
|
smartLinkActionType: _analytics.TrackQuickActionType.StatusUpdate
|
|
181
183
|
});
|
|
182
184
|
if (!url) {
|
|
183
|
-
_context2.next =
|
|
185
|
+
_context2.next = 18;
|
|
184
186
|
break;
|
|
185
187
|
}
|
|
186
|
-
_context2.next =
|
|
188
|
+
_context2.next = 18;
|
|
187
189
|
return reload(url, true, undefined, linkId);
|
|
188
|
-
case
|
|
189
|
-
_context2.next =
|
|
190
|
+
case 18:
|
|
191
|
+
_context2.next = 24;
|
|
190
192
|
break;
|
|
191
|
-
case
|
|
192
|
-
_context2.prev =
|
|
193
|
+
case 20:
|
|
194
|
+
_context2.prev = 20;
|
|
193
195
|
_context2.t0 = _context2["catch"](0);
|
|
194
196
|
setIsLoading(false);
|
|
195
197
|
if ((0, _utils.isInvokeCustomError)(_context2.t0)) {
|
|
@@ -199,16 +201,16 @@ var LozengeAction = function LozengeAction(_ref) {
|
|
|
199
201
|
setErrorMessage(_types.LozengeActionErrorMessages.updateFailed);
|
|
200
202
|
fireEvent('track.smartLinkQuickAction.failed', _lozengeActionAnalytics.unknownUpdateErrorAnalyticsPayload);
|
|
201
203
|
}
|
|
202
|
-
case
|
|
204
|
+
case 24:
|
|
203
205
|
case "end":
|
|
204
206
|
return _context2.stop();
|
|
205
207
|
}
|
|
206
|
-
}, _callee2, null, [[0,
|
|
208
|
+
}, _callee2, null, [[0, 20]]);
|
|
207
209
|
}));
|
|
208
210
|
return function (_x2, _x3, _x4) {
|
|
209
211
|
return _ref4.apply(this, arguments);
|
|
210
212
|
};
|
|
211
|
-
}(), [action === null || action === void 0 ? void 0 : action.update, invoke, linkId, reload, url, fireEvent]);
|
|
213
|
+
}(), [action === null || action === void 0 ? void 0 : action.update, invoke, linkId, reload, url, fireEvent, onAfterChanged]);
|
|
212
214
|
var dropdownItemGroup = (0, _react.useMemo)(function () {
|
|
213
215
|
if (errorMessage) {
|
|
214
216
|
return /*#__PURE__*/_react.default.createElement(_lozengeActionError.default, {
|
|
@@ -214,7 +214,8 @@ var HoverCardComponent = exports.HoverCardComponent = function HoverCardComponen
|
|
|
214
214
|
renderers: renderers,
|
|
215
215
|
actionOptions: actionOptions,
|
|
216
216
|
url: url,
|
|
217
|
-
id: id
|
|
217
|
+
id: id,
|
|
218
|
+
hoverPreviewOptions: hoverPreviewOptions
|
|
218
219
|
};
|
|
219
220
|
return /*#__PURE__*/_react.default.createElement(_SmartLinkAnalyticsContext.SmartLinkAnalyticsContext, {
|
|
220
221
|
url: url,
|
|
@@ -222,7 +223,7 @@ var HoverCardComponent = exports.HoverCardComponent = function HoverCardComponen
|
|
|
222
223
|
id: id,
|
|
223
224
|
source: HOVER_CARD_SOURCE
|
|
224
225
|
}, /*#__PURE__*/_react.default.createElement(_HoverCardContent.default, hoverCardContentProps));
|
|
225
|
-
}, [initShowCard, initHideCard, linkState, onActionClick, renderers, actionOptions, url, id]);
|
|
226
|
+
}, [initShowCard, initHideCard, linkState, onActionClick, renderers, actionOptions, url, id, hoverPreviewOptions]);
|
|
226
227
|
var trigger = (0, _react.useCallback)(function (_ref3) {
|
|
227
228
|
var ariaHasPopup = _ref3['aria-haspopup'],
|
|
228
229
|
ariaExpanded = _ref3['aria-expanded'],
|
|
@@ -9,6 +9,7 @@ exports.hoverCardClassName = exports.default = 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 _useAnalyticsEvents2 = require("../../../common/analytics/generated/use-analytics-events");
|
|
13
14
|
var _constants = require("../../../constants");
|
|
14
15
|
var _helpers = require("../../../state/helpers");
|
|
@@ -36,7 +37,8 @@ var HoverCardContent = function HoverCardContent(_ref) {
|
|
|
36
37
|
url = _ref.url,
|
|
37
38
|
onMouseEnter = _ref.onMouseEnter,
|
|
38
39
|
onMouseLeave = _ref.onMouseLeave,
|
|
39
|
-
actionOptions = _ref.actionOptions
|
|
40
|
+
actionOptions = _ref.actionOptions,
|
|
41
|
+
hoverPreviewOptions = _ref.hoverPreviewOptions;
|
|
40
42
|
var _useAnalyticsEventsNe = (0, _analyticsNext.useAnalyticsEvents)(),
|
|
41
43
|
createAnalyticsEvent = _useAnalyticsEventsNe.createAnalyticsEvent;
|
|
42
44
|
var _useAnalyticsEvents = (0, _useAnalyticsEvents2.useAnalyticsEvents)(),
|
|
@@ -131,6 +133,11 @@ var HoverCardContent = function HoverCardContent(_ref) {
|
|
|
131
133
|
return e.stopPropagation();
|
|
132
134
|
}, []);
|
|
133
135
|
var getCardView = function getCardView(cardState) {
|
|
136
|
+
var _hoverPreviewOptions$;
|
|
137
|
+
var overrideView = (0, _platformFeatureFlags.fg)('smart-link-custom-hover-card-content') ? hoverPreviewOptions === null || hoverPreviewOptions === void 0 || (_hoverPreviewOptions$ = hoverPreviewOptions.render) === null || _hoverPreviewOptions$ === void 0 ? void 0 : _hoverPreviewOptions$.call(hoverPreviewOptions) : undefined;
|
|
138
|
+
if (overrideView) {
|
|
139
|
+
return overrideView;
|
|
140
|
+
}
|
|
134
141
|
if (cardState.metadataStatus === 'pending') {
|
|
135
142
|
return /*#__PURE__*/_react.default.createElement(_resolving.default, {
|
|
136
143
|
flexibleCardProps: flexibleCardProps,
|
|
@@ -22,7 +22,7 @@ var _excluded = ["href", "children", "checkSafety", "onClick", "testId", "isLink
|
|
|
22
22
|
_excluded2 = ["isLinkSafe", "showSafetyWarningModal"];
|
|
23
23
|
var PACKAGE_DATA = {
|
|
24
24
|
packageName: "@atlaskit/smart-card",
|
|
25
|
-
packageVersion: "
|
|
25
|
+
packageVersion: "0.0.0-development",
|
|
26
26
|
componentName: 'linkUrl'
|
|
27
27
|
};
|
|
28
28
|
var Anchor = (0, _click.withLinkClickedEvent)('a');
|
|
@@ -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: "
|
|
5
|
+
packageVersion: "0.0.0-development"
|
|
6
6
|
};
|
|
7
7
|
export let TrackQuickActionType = /*#__PURE__*/function (TrackQuickActionType) {
|
|
8
8
|
TrackQuickActionType["StatusUpdate"] = "StatusUpdate";
|
|
@@ -5,6 +5,7 @@ import "./index.compiled.css";
|
|
|
5
5
|
import { ax, ix } from "@compiled/react/runtime";
|
|
6
6
|
import React from 'react';
|
|
7
7
|
import { di } from 'react-magnetic-di';
|
|
8
|
+
import { fg } from '@atlaskit/platform-feature-flags';
|
|
8
9
|
import { MediaPlacement, SmartLinkSize } from '../../../../constants';
|
|
9
10
|
import { useFlexibleUiContext } from '../../../../state/flexible-ui-context';
|
|
10
11
|
import { isFlexUiPreviewPresent } from '../../../../state/flexible-ui-context/utils';
|
|
@@ -175,7 +176,7 @@ const Container = ({
|
|
|
175
176
|
previewOnLeft,
|
|
176
177
|
previewOnRight
|
|
177
178
|
} = getChildrenOptions(children, context);
|
|
178
|
-
const canShowHoverPreview = showHoverPreview && status === 'resolved';
|
|
179
|
+
const canShowHoverPreview = showHoverPreview && (status === 'resolved' || (hoverPreviewOptions === null || hoverPreviewOptions === void 0 ? void 0 : hoverPreviewOptions.render) !== undefined && fg('smart-link-custom-hover-card-content'));
|
|
179
180
|
// `retry` object contains action that can be performed on
|
|
180
181
|
// unresolved link (unauthorized, forbidden, not found, etc.)
|
|
181
182
|
const canShowAuthTooltip = showHoverPreview && status === 'unauthorized' && retry !== undefined;
|
package/dist/es2019/view/FlexibleCard/components/elements/common/base-lozenge-element/index.js
CHANGED
|
@@ -22,7 +22,8 @@ const BaseLozengeElement = ({
|
|
|
22
22
|
className,
|
|
23
23
|
style,
|
|
24
24
|
text,
|
|
25
|
-
testId = 'smart-element-lozenge'
|
|
25
|
+
testId = 'smart-element-lozenge',
|
|
26
|
+
onAfterChanged
|
|
26
27
|
}) => {
|
|
27
28
|
const ui = useFlexibleUiOptionContext();
|
|
28
29
|
if (!text) {
|
|
@@ -33,7 +34,8 @@ const BaseLozengeElement = ({
|
|
|
33
34
|
appearance: appearance,
|
|
34
35
|
testId: testId,
|
|
35
36
|
text: text,
|
|
36
|
-
zIndex: ui === null || ui === void 0 ? void 0 : ui.zIndex
|
|
37
|
+
zIndex: ui === null || ui === void 0 ? void 0 : ui.zIndex,
|
|
38
|
+
onAfterChanged: onAfterChanged
|
|
37
39
|
}) : /*#__PURE__*/React.createElement(AtlaskitLozenge, _extends({
|
|
38
40
|
appearance: appearance
|
|
39
41
|
}, fg('platform-component-visual-refresh') ? {
|
|
@@ -23,7 +23,8 @@ const LozengeAction = ({
|
|
|
23
23
|
appearance,
|
|
24
24
|
testId = 'smart-element-lozenge-action',
|
|
25
25
|
text,
|
|
26
|
-
zIndex
|
|
26
|
+
zIndex,
|
|
27
|
+
onAfterChanged
|
|
27
28
|
}) => {
|
|
28
29
|
var _action$update;
|
|
29
30
|
const [selected, setSelected] = useState({
|
|
@@ -97,6 +98,7 @@ const LozengeAction = ({
|
|
|
97
98
|
setIsLoading(true);
|
|
98
99
|
const request = createStatusUpdateRequest(updateAction, id);
|
|
99
100
|
await invoke(request);
|
|
101
|
+
onAfterChanged === null || onAfterChanged === void 0 ? void 0 : onAfterChanged();
|
|
100
102
|
setSelected({
|
|
101
103
|
appearance,
|
|
102
104
|
text
|
|
@@ -122,7 +124,7 @@ const LozengeAction = ({
|
|
|
122
124
|
fireEvent('track.smartLinkQuickAction.failed', unknownUpdateErrorAnalyticsPayload);
|
|
123
125
|
}
|
|
124
126
|
}
|
|
125
|
-
}, [action === null || action === void 0 ? void 0 : action.update, invoke, linkId, reload, url, fireEvent]);
|
|
127
|
+
}, [action === null || action === void 0 ? void 0 : action.update, invoke, linkId, reload, url, fireEvent, onAfterChanged]);
|
|
126
128
|
const dropdownItemGroup = useMemo(() => {
|
|
127
129
|
if (errorMessage) {
|
|
128
130
|
return /*#__PURE__*/React.createElement(LozengeActionError, {
|
|
@@ -191,7 +191,8 @@ export const HoverCardComponent = ({
|
|
|
191
191
|
renderers,
|
|
192
192
|
actionOptions,
|
|
193
193
|
url,
|
|
194
|
-
id
|
|
194
|
+
id,
|
|
195
|
+
hoverPreviewOptions
|
|
195
196
|
};
|
|
196
197
|
return /*#__PURE__*/React.createElement(SmartLinkAnalyticsContext, {
|
|
197
198
|
url: url,
|
|
@@ -199,7 +200,7 @@ export const HoverCardComponent = ({
|
|
|
199
200
|
id: id,
|
|
200
201
|
source: HOVER_CARD_SOURCE
|
|
201
202
|
}, /*#__PURE__*/React.createElement(HoverCardContent, hoverCardContentProps));
|
|
202
|
-
}, [initShowCard, initHideCard, linkState, onActionClick, renderers, actionOptions, url, id]);
|
|
203
|
+
}, [initShowCard, initHideCard, linkState, onActionClick, renderers, actionOptions, url, id, hoverPreviewOptions]);
|
|
203
204
|
const trigger = useCallback(({
|
|
204
205
|
'aria-haspopup': ariaHasPopup,
|
|
205
206
|
'aria-expanded': ariaExpanded,
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React, { useCallback, useEffect, useMemo, useRef } from 'react';
|
|
2
2
|
import { useAnalyticsEvents as useAnalyticsEventsNext } from '@atlaskit/analytics-next';
|
|
3
3
|
import { useSmartLinkContext } from '@atlaskit/link-provider';
|
|
4
|
+
import { fg } from '@atlaskit/platform-feature-flags';
|
|
4
5
|
import { useAnalyticsEvents } from '../../../common/analytics/generated/use-analytics-events';
|
|
5
6
|
import { CardDisplay, SmartLinkPosition, SmartLinkSize } from '../../../constants';
|
|
6
7
|
import { getDefinitionId, getExtensionKey, getServices } from '../../../state/helpers';
|
|
@@ -25,7 +26,8 @@ const HoverCardContent = ({
|
|
|
25
26
|
url,
|
|
26
27
|
onMouseEnter,
|
|
27
28
|
onMouseLeave,
|
|
28
|
-
actionOptions
|
|
29
|
+
actionOptions,
|
|
30
|
+
hoverPreviewOptions
|
|
29
31
|
}) => {
|
|
30
32
|
var _linkState$status, _cardState$details;
|
|
31
33
|
const {
|
|
@@ -120,6 +122,11 @@ const HoverCardContent = ({
|
|
|
120
122
|
};
|
|
121
123
|
const onClickStopPropagation = useCallback(e => e.stopPropagation(), []);
|
|
122
124
|
const getCardView = cardState => {
|
|
125
|
+
var _hoverPreviewOptions$;
|
|
126
|
+
const overrideView = fg('smart-link-custom-hover-card-content') ? hoverPreviewOptions === null || hoverPreviewOptions === void 0 ? void 0 : (_hoverPreviewOptions$ = hoverPreviewOptions.render) === null || _hoverPreviewOptions$ === void 0 ? void 0 : _hoverPreviewOptions$.call(hoverPreviewOptions) : undefined;
|
|
127
|
+
if (overrideView) {
|
|
128
|
+
return overrideView;
|
|
129
|
+
}
|
|
123
130
|
if (cardState.metadataStatus === 'pending') {
|
|
124
131
|
return /*#__PURE__*/React.createElement(HoverCardLoadingView, {
|
|
125
132
|
flexibleCardProps: flexibleCardProps,
|
|
@@ -12,7 +12,7 @@ import LinkWarningModal from './LinkWarningModal';
|
|
|
12
12
|
import { useLinkWarningModal } from './LinkWarningModal/hooks/use-link-warning-modal';
|
|
13
13
|
const PACKAGE_DATA = {
|
|
14
14
|
packageName: "@atlaskit/smart-card",
|
|
15
|
-
packageVersion: "
|
|
15
|
+
packageVersion: "0.0.0-development",
|
|
16
16
|
componentName: 'linkUrl'
|
|
17
17
|
};
|
|
18
18
|
const Anchor = withLinkClickedEvent('a');
|
|
@@ -4,7 +4,7 @@ export var ANALYTICS_CHANNEL = 'media';
|
|
|
4
4
|
export var context = {
|
|
5
5
|
componentName: 'smart-cards',
|
|
6
6
|
packageName: "@atlaskit/smart-card",
|
|
7
|
-
packageVersion: "
|
|
7
|
+
packageVersion: "0.0.0-development"
|
|
8
8
|
};
|
|
9
9
|
export var TrackQuickActionType = /*#__PURE__*/function (TrackQuickActionType) {
|
|
10
10
|
TrackQuickActionType["StatusUpdate"] = "StatusUpdate";
|
|
@@ -5,6 +5,7 @@ import "./index.compiled.css";
|
|
|
5
5
|
import { ax, ix } from "@compiled/react/runtime";
|
|
6
6
|
import React from 'react';
|
|
7
7
|
import { di } from 'react-magnetic-di';
|
|
8
|
+
import { fg } from '@atlaskit/platform-feature-flags';
|
|
8
9
|
import { MediaPlacement, SmartLinkSize } from '../../../../constants';
|
|
9
10
|
import { useFlexibleUiContext } from '../../../../state/flexible-ui-context';
|
|
10
11
|
import { isFlexUiPreviewPresent } from '../../../../state/flexible-ui-context/utils';
|
|
@@ -185,7 +186,7 @@ var Container = function Container(_ref3) {
|
|
|
185
186
|
var _getChildrenOptions = getChildrenOptions(children, context),
|
|
186
187
|
previewOnLeft = _getChildrenOptions.previewOnLeft,
|
|
187
188
|
previewOnRight = _getChildrenOptions.previewOnRight;
|
|
188
|
-
var canShowHoverPreview = showHoverPreview && status === 'resolved';
|
|
189
|
+
var canShowHoverPreview = showHoverPreview && (status === 'resolved' || (hoverPreviewOptions === null || hoverPreviewOptions === void 0 ? void 0 : hoverPreviewOptions.render) !== undefined && fg('smart-link-custom-hover-card-content'));
|
|
189
190
|
// `retry` object contains action that can be performed on
|
|
190
191
|
// unresolved link (unauthorized, forbidden, not found, etc.)
|
|
191
192
|
var canShowAuthTooltip = showHoverPreview && status === 'unauthorized' && retry !== undefined;
|
|
@@ -24,7 +24,8 @@ var BaseLozengeElement = function BaseLozengeElement(_ref) {
|
|
|
24
24
|
style = _ref.style,
|
|
25
25
|
text = _ref.text,
|
|
26
26
|
_ref$testId = _ref.testId,
|
|
27
|
-
testId = _ref$testId === void 0 ? 'smart-element-lozenge' : _ref$testId
|
|
27
|
+
testId = _ref$testId === void 0 ? 'smart-element-lozenge' : _ref$testId,
|
|
28
|
+
onAfterChanged = _ref.onAfterChanged;
|
|
28
29
|
var ui = useFlexibleUiOptionContext();
|
|
29
30
|
if (!text) {
|
|
30
31
|
return null;
|
|
@@ -34,7 +35,8 @@ var BaseLozengeElement = function BaseLozengeElement(_ref) {
|
|
|
34
35
|
appearance: appearance,
|
|
35
36
|
testId: testId,
|
|
36
37
|
text: text,
|
|
37
|
-
zIndex: ui === null || ui === void 0 ? void 0 : ui.zIndex
|
|
38
|
+
zIndex: ui === null || ui === void 0 ? void 0 : ui.zIndex,
|
|
39
|
+
onAfterChanged: onAfterChanged
|
|
38
40
|
}) : /*#__PURE__*/React.createElement(AtlaskitLozenge, _extends({
|
|
39
41
|
appearance: appearance
|
|
40
42
|
}, fg('platform-component-visual-refresh') ? {
|
|
@@ -32,7 +32,8 @@ var LozengeAction = function LozengeAction(_ref) {
|
|
|
32
32
|
_ref$testId = _ref.testId,
|
|
33
33
|
testId = _ref$testId === void 0 ? 'smart-element-lozenge-action' : _ref$testId,
|
|
34
34
|
text = _ref.text,
|
|
35
|
-
zIndex = _ref.zIndex
|
|
35
|
+
zIndex = _ref.zIndex,
|
|
36
|
+
onAfterChanged = _ref.onAfterChanged;
|
|
36
37
|
var _useState = useState({
|
|
37
38
|
appearance: appearance,
|
|
38
39
|
text: text
|
|
@@ -151,7 +152,7 @@ var LozengeAction = function LozengeAction(_ref) {
|
|
|
151
152
|
fireEvent('ui.button.clicked.smartLinkStatusListItem', {});
|
|
152
153
|
updateAction = action === null || action === void 0 ? void 0 : action.update;
|
|
153
154
|
if (!(updateAction && id)) {
|
|
154
|
-
_context2.next =
|
|
155
|
+
_context2.next = 18;
|
|
155
156
|
break;
|
|
156
157
|
}
|
|
157
158
|
setIsLoading(true);
|
|
@@ -159,6 +160,7 @@ var LozengeAction = function LozengeAction(_ref) {
|
|
|
159
160
|
_context2.next = 8;
|
|
160
161
|
return invoke(request);
|
|
161
162
|
case 8:
|
|
163
|
+
onAfterChanged === null || onAfterChanged === void 0 || onAfterChanged();
|
|
162
164
|
setSelected({
|
|
163
165
|
appearance: appearance,
|
|
164
166
|
text: text
|
|
@@ -171,16 +173,16 @@ var LozengeAction = function LozengeAction(_ref) {
|
|
|
171
173
|
smartLinkActionType: TrackQuickActionType.StatusUpdate
|
|
172
174
|
});
|
|
173
175
|
if (!url) {
|
|
174
|
-
_context2.next =
|
|
176
|
+
_context2.next = 18;
|
|
175
177
|
break;
|
|
176
178
|
}
|
|
177
|
-
_context2.next =
|
|
179
|
+
_context2.next = 18;
|
|
178
180
|
return reload(url, true, undefined, linkId);
|
|
179
|
-
case
|
|
180
|
-
_context2.next =
|
|
181
|
+
case 18:
|
|
182
|
+
_context2.next = 24;
|
|
181
183
|
break;
|
|
182
|
-
case
|
|
183
|
-
_context2.prev =
|
|
184
|
+
case 20:
|
|
185
|
+
_context2.prev = 20;
|
|
184
186
|
_context2.t0 = _context2["catch"](0);
|
|
185
187
|
setIsLoading(false);
|
|
186
188
|
if (isInvokeCustomError(_context2.t0)) {
|
|
@@ -190,16 +192,16 @@ var LozengeAction = function LozengeAction(_ref) {
|
|
|
190
192
|
setErrorMessage(LozengeActionErrorMessages.updateFailed);
|
|
191
193
|
fireEvent('track.smartLinkQuickAction.failed', unknownUpdateErrorAnalyticsPayload);
|
|
192
194
|
}
|
|
193
|
-
case
|
|
195
|
+
case 24:
|
|
194
196
|
case "end":
|
|
195
197
|
return _context2.stop();
|
|
196
198
|
}
|
|
197
|
-
}, _callee2, null, [[0,
|
|
199
|
+
}, _callee2, null, [[0, 20]]);
|
|
198
200
|
}));
|
|
199
201
|
return function (_x2, _x3, _x4) {
|
|
200
202
|
return _ref4.apply(this, arguments);
|
|
201
203
|
};
|
|
202
|
-
}(), [action === null || action === void 0 ? void 0 : action.update, invoke, linkId, reload, url, fireEvent]);
|
|
204
|
+
}(), [action === null || action === void 0 ? void 0 : action.update, invoke, linkId, reload, url, fireEvent, onAfterChanged]);
|
|
203
205
|
var dropdownItemGroup = useMemo(function () {
|
|
204
206
|
if (errorMessage) {
|
|
205
207
|
return /*#__PURE__*/React.createElement(LozengeActionError, {
|
|
@@ -205,7 +205,8 @@ export var HoverCardComponent = function HoverCardComponent(_ref) {
|
|
|
205
205
|
renderers: renderers,
|
|
206
206
|
actionOptions: actionOptions,
|
|
207
207
|
url: url,
|
|
208
|
-
id: id
|
|
208
|
+
id: id,
|
|
209
|
+
hoverPreviewOptions: hoverPreviewOptions
|
|
209
210
|
};
|
|
210
211
|
return /*#__PURE__*/React.createElement(SmartLinkAnalyticsContext, {
|
|
211
212
|
url: url,
|
|
@@ -213,7 +214,7 @@ export var HoverCardComponent = function HoverCardComponent(_ref) {
|
|
|
213
214
|
id: id,
|
|
214
215
|
source: HOVER_CARD_SOURCE
|
|
215
216
|
}, /*#__PURE__*/React.createElement(HoverCardContent, hoverCardContentProps));
|
|
216
|
-
}, [initShowCard, initHideCard, linkState, onActionClick, renderers, actionOptions, url, id]);
|
|
217
|
+
}, [initShowCard, initHideCard, linkState, onActionClick, renderers, actionOptions, url, id, hoverPreviewOptions]);
|
|
217
218
|
var trigger = useCallback(function (_ref3) {
|
|
218
219
|
var ariaHasPopup = _ref3['aria-haspopup'],
|
|
219
220
|
ariaExpanded = _ref3['aria-expanded'],
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React, { useCallback, useEffect, useMemo, useRef } from 'react';
|
|
2
2
|
import { useAnalyticsEvents as useAnalyticsEventsNext } from '@atlaskit/analytics-next';
|
|
3
3
|
import { useSmartLinkContext } from '@atlaskit/link-provider';
|
|
4
|
+
import { fg } from '@atlaskit/platform-feature-flags';
|
|
4
5
|
import { useAnalyticsEvents } from '../../../common/analytics/generated/use-analytics-events';
|
|
5
6
|
import { CardDisplay, SmartLinkPosition, SmartLinkSize } from '../../../constants';
|
|
6
7
|
import { getDefinitionId, getExtensionKey, getServices } from '../../../state/helpers';
|
|
@@ -27,7 +28,8 @@ var HoverCardContent = function HoverCardContent(_ref) {
|
|
|
27
28
|
url = _ref.url,
|
|
28
29
|
onMouseEnter = _ref.onMouseEnter,
|
|
29
30
|
onMouseLeave = _ref.onMouseLeave,
|
|
30
|
-
actionOptions = _ref.actionOptions
|
|
31
|
+
actionOptions = _ref.actionOptions,
|
|
32
|
+
hoverPreviewOptions = _ref.hoverPreviewOptions;
|
|
31
33
|
var _useAnalyticsEventsNe = useAnalyticsEventsNext(),
|
|
32
34
|
createAnalyticsEvent = _useAnalyticsEventsNe.createAnalyticsEvent;
|
|
33
35
|
var _useAnalyticsEvents = useAnalyticsEvents(),
|
|
@@ -122,6 +124,11 @@ var HoverCardContent = function HoverCardContent(_ref) {
|
|
|
122
124
|
return e.stopPropagation();
|
|
123
125
|
}, []);
|
|
124
126
|
var getCardView = function getCardView(cardState) {
|
|
127
|
+
var _hoverPreviewOptions$;
|
|
128
|
+
var overrideView = fg('smart-link-custom-hover-card-content') ? hoverPreviewOptions === null || hoverPreviewOptions === void 0 || (_hoverPreviewOptions$ = hoverPreviewOptions.render) === null || _hoverPreviewOptions$ === void 0 ? void 0 : _hoverPreviewOptions$.call(hoverPreviewOptions) : undefined;
|
|
129
|
+
if (overrideView) {
|
|
130
|
+
return overrideView;
|
|
131
|
+
}
|
|
125
132
|
if (cardState.metadataStatus === 'pending') {
|
|
126
133
|
return /*#__PURE__*/React.createElement(HoverCardLoadingView, {
|
|
127
134
|
flexibleCardProps: flexibleCardProps,
|
|
@@ -15,7 +15,7 @@ import LinkWarningModal from './LinkWarningModal';
|
|
|
15
15
|
import { useLinkWarningModal } from './LinkWarningModal/hooks/use-link-warning-modal';
|
|
16
16
|
var PACKAGE_DATA = {
|
|
17
17
|
packageName: "@atlaskit/smart-card",
|
|
18
|
-
packageVersion: "
|
|
18
|
+
packageVersion: "0.0.0-development",
|
|
19
19
|
componentName: 'linkUrl'
|
|
20
20
|
};
|
|
21
21
|
var Anchor = withLinkClickedEvent('a');
|
package/dist/types/view/FlexibleCard/components/elements/common/base-lozenge-element/index.d.ts
CHANGED
|
@@ -11,6 +11,10 @@ export type BaseLozengeElementProps = ElementProps & {
|
|
|
11
11
|
* Determines the appearance of the Atlaskit lozenge.
|
|
12
12
|
*/
|
|
13
13
|
appearance?: LozengeAppearance;
|
|
14
|
+
/**
|
|
15
|
+
* Callback fired after lozenge value has changed
|
|
16
|
+
*/
|
|
17
|
+
onAfterChanged?: () => void;
|
|
14
18
|
/**
|
|
15
19
|
* Determines the custom styles of the Atlaskit lozenge.
|
|
16
20
|
*/
|
|
@@ -26,6 +30,6 @@ export type BaseLozengeElementProps = ElementProps & {
|
|
|
26
30
|
* @param {BaseLozengeElementProps} BaseLozengeElementProps - The props necessary for the Lozenge element.
|
|
27
31
|
* @see State
|
|
28
32
|
*/
|
|
29
|
-
declare const BaseLozengeElement: ({ action, appearance, name, className, style, text, testId, }: BaseLozengeElementProps) => JSX.Element | null;
|
|
33
|
+
declare const BaseLozengeElement: ({ action, appearance, name, className, style, text, testId, onAfterChanged, }: BaseLozengeElementProps) => JSX.Element | null;
|
|
30
34
|
export default BaseLozengeElement;
|
|
31
35
|
export declare const toDateLozengeProps: (dateString?: string) => Partial<BaseLozengeElementProps> | undefined;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { type HoverCardContentProps } from '../types';
|
|
3
3
|
export declare const hoverCardClassName = "smart-links-hover-preview";
|
|
4
|
-
declare const HoverCardContent: ({ id, cardState, onActionClick, onResolve, renderers, url, onMouseEnter, onMouseLeave, actionOptions, }: HoverCardContentProps) => React.JSX.Element | null;
|
|
4
|
+
declare const HoverCardContent: ({ id, cardState, onActionClick, onResolve, renderers, url, onMouseEnter, onMouseLeave, actionOptions, hoverPreviewOptions, }: HoverCardContentProps) => React.JSX.Element | null;
|
|
5
5
|
export default HoverCardContent;
|
|
@@ -93,6 +93,7 @@ export type HoverCardContentProps = {
|
|
|
93
93
|
onResolve: () => void;
|
|
94
94
|
renderers?: CardProviderRenderers;
|
|
95
95
|
url: string;
|
|
96
|
+
hoverPreviewOptions?: HoverPreviewOptions;
|
|
96
97
|
};
|
|
97
98
|
export type ContentContainerProps = React.HTMLAttributes<HTMLDivElement> & {
|
|
98
99
|
isAIEnabled?: boolean;
|
|
@@ -108,4 +109,8 @@ export interface HoverPreviewOptions {
|
|
|
108
109
|
* Delay (in milliseconds) between hovering over the trigger element and the hover card opening. Defaults to 500ms.
|
|
109
110
|
*/
|
|
110
111
|
fadeInDelay?: number;
|
|
112
|
+
/**
|
|
113
|
+
* Render a custom component instead of the default hover card.
|
|
114
|
+
*/
|
|
115
|
+
render?: () => React.ReactNode;
|
|
111
116
|
}
|
|
@@ -11,6 +11,10 @@ export type BaseLozengeElementProps = ElementProps & {
|
|
|
11
11
|
* Determines the appearance of the Atlaskit lozenge.
|
|
12
12
|
*/
|
|
13
13
|
appearance?: LozengeAppearance;
|
|
14
|
+
/**
|
|
15
|
+
* Callback fired after lozenge value has changed
|
|
16
|
+
*/
|
|
17
|
+
onAfterChanged?: () => void;
|
|
14
18
|
/**
|
|
15
19
|
* Determines the custom styles of the Atlaskit lozenge.
|
|
16
20
|
*/
|
|
@@ -26,6 +30,6 @@ export type BaseLozengeElementProps = ElementProps & {
|
|
|
26
30
|
* @param {BaseLozengeElementProps} BaseLozengeElementProps - The props necessary for the Lozenge element.
|
|
27
31
|
* @see State
|
|
28
32
|
*/
|
|
29
|
-
declare const BaseLozengeElement: ({ action, appearance, name, className, style, text, testId, }: BaseLozengeElementProps) => JSX.Element | null;
|
|
33
|
+
declare const BaseLozengeElement: ({ action, appearance, name, className, style, text, testId, onAfterChanged, }: BaseLozengeElementProps) => JSX.Element | null;
|
|
30
34
|
export default BaseLozengeElement;
|
|
31
35
|
export declare const toDateLozengeProps: (dateString?: string) => Partial<BaseLozengeElementProps> | undefined;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { type HoverCardContentProps } from '../types';
|
|
3
3
|
export declare const hoverCardClassName = "smart-links-hover-preview";
|
|
4
|
-
declare const HoverCardContent: ({ id, cardState, onActionClick, onResolve, renderers, url, onMouseEnter, onMouseLeave, actionOptions, }: HoverCardContentProps) => React.JSX.Element | null;
|
|
4
|
+
declare const HoverCardContent: ({ id, cardState, onActionClick, onResolve, renderers, url, onMouseEnter, onMouseLeave, actionOptions, hoverPreviewOptions, }: HoverCardContentProps) => React.JSX.Element | null;
|
|
5
5
|
export default HoverCardContent;
|
|
@@ -93,6 +93,7 @@ export type HoverCardContentProps = {
|
|
|
93
93
|
onResolve: () => void;
|
|
94
94
|
renderers?: CardProviderRenderers;
|
|
95
95
|
url: string;
|
|
96
|
+
hoverPreviewOptions?: HoverPreviewOptions;
|
|
96
97
|
};
|
|
97
98
|
export type ContentContainerProps = React.HTMLAttributes<HTMLDivElement> & {
|
|
98
99
|
isAIEnabled?: boolean;
|
|
@@ -108,4 +109,8 @@ export interface HoverPreviewOptions {
|
|
|
108
109
|
* Delay (in milliseconds) between hovering over the trigger element and the hover card opening. Defaults to 500ms.
|
|
109
110
|
*/
|
|
110
111
|
fadeInDelay?: number;
|
|
112
|
+
/**
|
|
113
|
+
* Render a custom component instead of the default hover card.
|
|
114
|
+
*/
|
|
115
|
+
render?: () => React.ReactNode;
|
|
111
116
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/smart-card",
|
|
3
|
-
"version": "43.
|
|
3
|
+
"version": "43.7.0",
|
|
4
4
|
"description": "Smart card component",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -53,24 +53,24 @@
|
|
|
53
53
|
"@atlaskit/link-analytics": "^11.0.0",
|
|
54
54
|
"@atlaskit/link-client-extension": "^6.0.0",
|
|
55
55
|
"@atlaskit/link-extractors": "^2.4.0",
|
|
56
|
-
"@atlaskit/link-test-helpers": "^8.
|
|
56
|
+
"@atlaskit/link-test-helpers": "^8.5.0",
|
|
57
57
|
"@atlaskit/linking-common": "^9.8.0",
|
|
58
|
-
"@atlaskit/linking-types": "^14.
|
|
58
|
+
"@atlaskit/linking-types": "^14.2.0",
|
|
59
59
|
"@atlaskit/logo": "^19.9.0",
|
|
60
60
|
"@atlaskit/lozenge": "^13.1.0",
|
|
61
61
|
"@atlaskit/menu": "^8.4.0",
|
|
62
|
-
"@atlaskit/modal-dialog": "^14.
|
|
62
|
+
"@atlaskit/modal-dialog": "^14.7.0",
|
|
63
63
|
"@atlaskit/outbound-auth-flow-client": "^3.4.0",
|
|
64
64
|
"@atlaskit/platform-feature-flags": "^1.1.0",
|
|
65
65
|
"@atlaskit/popup": "^4.6.0",
|
|
66
66
|
"@atlaskit/primitives": "^16.1.0",
|
|
67
67
|
"@atlaskit/section-message": "^8.9.0",
|
|
68
|
-
"@atlaskit/select": "^21.
|
|
68
|
+
"@atlaskit/select": "^21.4.0",
|
|
69
69
|
"@atlaskit/spinner": "^19.0.0",
|
|
70
|
-
"@atlaskit/textarea": "^8.
|
|
71
|
-
"@atlaskit/textfield": "^8.
|
|
70
|
+
"@atlaskit/textarea": "^8.1.0",
|
|
71
|
+
"@atlaskit/textfield": "^8.1.0",
|
|
72
72
|
"@atlaskit/theme": "^21.0.0",
|
|
73
|
-
"@atlaskit/tmp-editor-statsig": "^13.
|
|
73
|
+
"@atlaskit/tmp-editor-statsig": "^13.38.0",
|
|
74
74
|
"@atlaskit/tokens": "^8.0.0",
|
|
75
75
|
"@atlaskit/tooltip": "^20.8.0",
|
|
76
76
|
"@atlaskit/ufo": "^0.4.0",
|
|
@@ -237,6 +237,9 @@
|
|
|
237
237
|
},
|
|
238
238
|
"platform-linking-smart-card-layered-link-a11y": {
|
|
239
239
|
"type": "boolean"
|
|
240
|
+
},
|
|
241
|
+
"smart-link-custom-hover-card-content": {
|
|
242
|
+
"type": "boolean"
|
|
240
243
|
}
|
|
241
244
|
},
|
|
242
245
|
"compassUnitTestMetricSourceId": "ari:cloud:compass:a436116f-02ce-4520-8fbb-7301462a1674:metric-source/c5751cc6-3513-4070-9deb-af31e86aed34/f74ef1bc-7240-4aac-9dc8-9dc43b502089"
|