@atlaskit/smart-card 40.8.3 → 40.9.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 +14 -0
- package/dist/cjs/utils/analytics/analytics.js +1 -1
- package/dist/cjs/view/EmbedCard/useEmbedResolvePostMessageListener.js +30 -0
- package/dist/cjs/view/EmbedCard/views/ResolvedView.js +9 -0
- package/dist/cjs/view/LinkUrl/index.js +1 -1
- package/dist/es2019/utils/analytics/analytics.js +1 -1
- package/dist/es2019/view/EmbedCard/useEmbedResolvePostMessageListener.js +24 -0
- package/dist/es2019/view/EmbedCard/views/ResolvedView.js +9 -0
- package/dist/es2019/view/LinkUrl/index.js +1 -1
- package/dist/esm/utils/analytics/analytics.js +1 -1
- package/dist/esm/view/EmbedCard/useEmbedResolvePostMessageListener.js +23 -0
- package/dist/esm/view/EmbedCard/views/ResolvedView.js +9 -0
- package/dist/esm/view/LinkUrl/index.js +1 -1
- package/dist/types/view/EmbedCard/useEmbedResolvePostMessageListener.d.ts +6 -0
- package/dist/types-ts4.5/view/EmbedCard/useEmbedResolvePostMessageListener.d.ts +6 -0
- package/package.json +6 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# @atlaskit/smart-card
|
|
2
2
|
|
|
3
|
+
## 40.9.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#200326](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/200326)
|
|
8
|
+
[`49771d466a293`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/49771d466a293) -
|
|
9
|
+
This change introduces the `useEmbedResolvePostMessageListener` hook, allowing embedded content to
|
|
10
|
+
request a Smart Link resolve by posting a `force-resolve-smart-link` message from an iframe. This
|
|
11
|
+
is useful when an action within the embed requires the parent to refetch the link's data.
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- Updated dependencies
|
|
16
|
+
|
|
3
17
|
## 40.8.3
|
|
4
18
|
|
|
5
19
|
### 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: "40.8.
|
|
14
|
+
packageVersion: "40.8.3"
|
|
15
15
|
};
|
|
16
16
|
var TrackQuickActionType = exports.TrackQuickActionType = /*#__PURE__*/function (TrackQuickActionType) {
|
|
17
17
|
TrackQuickActionType["StatusUpdate"] = "StatusUpdate";
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.useEmbedResolvePostMessageListener = void 0;
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
var _useResolve = _interopRequireDefault(require("../../state/hooks/use-resolve"));
|
|
10
|
+
var useEmbedResolvePostMessageListener = exports.useEmbedResolvePostMessageListener = function useEmbedResolvePostMessageListener(_ref) {
|
|
11
|
+
var url = _ref.url,
|
|
12
|
+
embedIframeRef = _ref.embedIframeRef;
|
|
13
|
+
var resolve = (0, _useResolve.default)();
|
|
14
|
+
(0, _react.useEffect)(function () {
|
|
15
|
+
var messageCallback = function messageCallback(event) {
|
|
16
|
+
var _embedIframeRef$curre;
|
|
17
|
+
if (typeof embedIframeRef === 'function') {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
var isFromExpectedIframe = embedIframeRef && event.source === ((_embedIframeRef$curre = embedIframeRef.current) === null || _embedIframeRef$curre === void 0 ? void 0 : _embedIframeRef$curre.contentWindow);
|
|
21
|
+
if (event.data === 'force-resolve-smart-link' && isFromExpectedIframe) {
|
|
22
|
+
resolve(url, true);
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
window.addEventListener('message', messageCallback);
|
|
26
|
+
return function () {
|
|
27
|
+
window.removeEventListener('message', messageCallback);
|
|
28
|
+
};
|
|
29
|
+
}, [resolve, url, embedIframeRef]);
|
|
30
|
+
};
|
|
@@ -7,11 +7,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.EmbedCardResolvedView = void 0;
|
|
8
8
|
var _react = _interopRequireDefault(require("react"));
|
|
9
9
|
var _link = _interopRequireDefault(require("@atlaskit/icon/core/migration/link"));
|
|
10
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
10
11
|
var _tokens = require("@atlaskit/tokens");
|
|
11
12
|
var _utils = require("../../../utils");
|
|
12
13
|
var _ExpandedFrame = require("../components/ExpandedFrame");
|
|
13
14
|
var _Frame = require("../components/Frame");
|
|
14
15
|
var _ImageIcon = require("../components/ImageIcon");
|
|
16
|
+
var _useEmbedResolvePostMessageListener = require("../useEmbedResolvePostMessageListener");
|
|
15
17
|
var EmbedCardResolvedView = exports.EmbedCardResolvedView = /*#__PURE__*/_react.default.forwardRef(function (_ref, embedIframeRef) {
|
|
16
18
|
var link = _ref.link,
|
|
17
19
|
context = _ref.context,
|
|
@@ -50,6 +52,13 @@ var EmbedCardResolvedView = exports.EmbedCardResolvedView = /*#__PURE__*/_react.
|
|
|
50
52
|
appearance: (0, _utils.isProfileType)(type) ? 'round' : 'square'
|
|
51
53
|
});
|
|
52
54
|
}, [iconFromContext, src, linkGlyph, type]);
|
|
55
|
+
if ((0, _platformFeatureFlags.fg)('ptc-enable-embed-team-smart-links')) {
|
|
56
|
+
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
57
|
+
(0, _useEmbedResolvePostMessageListener.useEmbedResolvePostMessageListener)({
|
|
58
|
+
url: link,
|
|
59
|
+
embedIframeRef: embedIframeRef
|
|
60
|
+
});
|
|
61
|
+
}
|
|
53
62
|
var themeState = (0, _tokens.useThemeObserver)();
|
|
54
63
|
var previewUrl = preview === null || preview === void 0 ? void 0 : preview.src;
|
|
55
64
|
if (previewUrl && isSupportTheming) {
|
|
@@ -19,7 +19,7 @@ var _excluded = ["href", "children", "checkSafety", "onClick", "testId", "isLink
|
|
|
19
19
|
_excluded2 = ["isLinkSafe", "showSafetyWarningModal"];
|
|
20
20
|
var PACKAGE_DATA = {
|
|
21
21
|
packageName: "@atlaskit/smart-card",
|
|
22
|
-
packageVersion: "40.8.
|
|
22
|
+
packageVersion: "40.8.3",
|
|
23
23
|
componentName: 'linkUrl'
|
|
24
24
|
};
|
|
25
25
|
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: "40.8.
|
|
5
|
+
packageVersion: "40.8.3"
|
|
6
6
|
};
|
|
7
7
|
export let TrackQuickActionType = /*#__PURE__*/function (TrackQuickActionType) {
|
|
8
8
|
TrackQuickActionType["StatusUpdate"] = "StatusUpdate";
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { useEffect } from 'react';
|
|
2
|
+
import useResolve from '../../state/hooks/use-resolve';
|
|
3
|
+
export const useEmbedResolvePostMessageListener = ({
|
|
4
|
+
url,
|
|
5
|
+
embedIframeRef
|
|
6
|
+
}) => {
|
|
7
|
+
const resolve = useResolve();
|
|
8
|
+
useEffect(() => {
|
|
9
|
+
const messageCallback = event => {
|
|
10
|
+
var _embedIframeRef$curre;
|
|
11
|
+
if (typeof embedIframeRef === 'function') {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
const isFromExpectedIframe = embedIframeRef && event.source === ((_embedIframeRef$curre = embedIframeRef.current) === null || _embedIframeRef$curre === void 0 ? void 0 : _embedIframeRef$curre.contentWindow);
|
|
15
|
+
if (event.data === 'force-resolve-smart-link' && isFromExpectedIframe) {
|
|
16
|
+
resolve(url, true);
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
window.addEventListener('message', messageCallback);
|
|
20
|
+
return () => {
|
|
21
|
+
window.removeEventListener('message', messageCallback);
|
|
22
|
+
};
|
|
23
|
+
}, [resolve, url, embedIframeRef]);
|
|
24
|
+
};
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import LinkGlyph from '@atlaskit/icon/core/migration/link';
|
|
3
|
+
import { fg } from '@atlaskit/platform-feature-flags';
|
|
3
4
|
import { useThemeObserver } from '@atlaskit/tokens';
|
|
4
5
|
import { getPreviewUrlWithTheme, isProfileType } from '../../../utils';
|
|
5
6
|
import { ExpandedFrame } from '../components/ExpandedFrame';
|
|
6
7
|
import { Frame } from '../components/Frame';
|
|
7
8
|
import { ImageIcon } from '../components/ImageIcon';
|
|
9
|
+
import { useEmbedResolvePostMessageListener } from '../useEmbedResolvePostMessageListener';
|
|
8
10
|
export const EmbedCardResolvedView = /*#__PURE__*/React.forwardRef(({
|
|
9
11
|
link,
|
|
10
12
|
context,
|
|
@@ -41,6 +43,13 @@ export const EmbedCardResolvedView = /*#__PURE__*/React.forwardRef(({
|
|
|
41
43
|
appearance: isProfileType(type) ? 'round' : 'square'
|
|
42
44
|
});
|
|
43
45
|
}, [iconFromContext, src, linkGlyph, type]);
|
|
46
|
+
if (fg('ptc-enable-embed-team-smart-links')) {
|
|
47
|
+
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
48
|
+
useEmbedResolvePostMessageListener({
|
|
49
|
+
url: link,
|
|
50
|
+
embedIframeRef
|
|
51
|
+
});
|
|
52
|
+
}
|
|
44
53
|
const themeState = useThemeObserver();
|
|
45
54
|
let previewUrl = preview === null || preview === void 0 ? void 0 : preview.src;
|
|
46
55
|
if (previewUrl && isSupportTheming) {
|
|
@@ -9,7 +9,7 @@ import LinkWarningModal from './LinkWarningModal';
|
|
|
9
9
|
import { useLinkWarningModal } from './LinkWarningModal/hooks/use-link-warning-modal';
|
|
10
10
|
const PACKAGE_DATA = {
|
|
11
11
|
packageName: "@atlaskit/smart-card",
|
|
12
|
-
packageVersion: "40.8.
|
|
12
|
+
packageVersion: "40.8.3",
|
|
13
13
|
componentName: 'linkUrl'
|
|
14
14
|
};
|
|
15
15
|
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: "40.8.
|
|
7
|
+
packageVersion: "40.8.3"
|
|
8
8
|
};
|
|
9
9
|
export var TrackQuickActionType = /*#__PURE__*/function (TrackQuickActionType) {
|
|
10
10
|
TrackQuickActionType["StatusUpdate"] = "StatusUpdate";
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { useEffect } from 'react';
|
|
2
|
+
import useResolve from '../../state/hooks/use-resolve';
|
|
3
|
+
export var useEmbedResolvePostMessageListener = function useEmbedResolvePostMessageListener(_ref) {
|
|
4
|
+
var url = _ref.url,
|
|
5
|
+
embedIframeRef = _ref.embedIframeRef;
|
|
6
|
+
var resolve = useResolve();
|
|
7
|
+
useEffect(function () {
|
|
8
|
+
var messageCallback = function messageCallback(event) {
|
|
9
|
+
var _embedIframeRef$curre;
|
|
10
|
+
if (typeof embedIframeRef === 'function') {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
var isFromExpectedIframe = embedIframeRef && event.source === ((_embedIframeRef$curre = embedIframeRef.current) === null || _embedIframeRef$curre === void 0 ? void 0 : _embedIframeRef$curre.contentWindow);
|
|
14
|
+
if (event.data === 'force-resolve-smart-link' && isFromExpectedIframe) {
|
|
15
|
+
resolve(url, true);
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
window.addEventListener('message', messageCallback);
|
|
19
|
+
return function () {
|
|
20
|
+
window.removeEventListener('message', messageCallback);
|
|
21
|
+
};
|
|
22
|
+
}, [resolve, url, embedIframeRef]);
|
|
23
|
+
};
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import LinkGlyph from '@atlaskit/icon/core/migration/link';
|
|
3
|
+
import { fg } from '@atlaskit/platform-feature-flags';
|
|
3
4
|
import { useThemeObserver } from '@atlaskit/tokens';
|
|
4
5
|
import { getPreviewUrlWithTheme, isProfileType } from '../../../utils';
|
|
5
6
|
import { ExpandedFrame } from '../components/ExpandedFrame';
|
|
6
7
|
import { Frame } from '../components/Frame';
|
|
7
8
|
import { ImageIcon } from '../components/ImageIcon';
|
|
9
|
+
import { useEmbedResolvePostMessageListener } from '../useEmbedResolvePostMessageListener';
|
|
8
10
|
export var EmbedCardResolvedView = /*#__PURE__*/React.forwardRef(function (_ref, embedIframeRef) {
|
|
9
11
|
var link = _ref.link,
|
|
10
12
|
context = _ref.context,
|
|
@@ -43,6 +45,13 @@ export var EmbedCardResolvedView = /*#__PURE__*/React.forwardRef(function (_ref,
|
|
|
43
45
|
appearance: isProfileType(type) ? 'round' : 'square'
|
|
44
46
|
});
|
|
45
47
|
}, [iconFromContext, src, linkGlyph, type]);
|
|
48
|
+
if (fg('ptc-enable-embed-team-smart-links')) {
|
|
49
|
+
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
50
|
+
useEmbedResolvePostMessageListener({
|
|
51
|
+
url: link,
|
|
52
|
+
embedIframeRef: embedIframeRef
|
|
53
|
+
});
|
|
54
|
+
}
|
|
46
55
|
var themeState = useThemeObserver();
|
|
47
56
|
var previewUrl = preview === null || preview === void 0 ? void 0 : preview.src;
|
|
48
57
|
if (previewUrl && isSupportTheming) {
|
|
@@ -12,7 +12,7 @@ import LinkWarningModal from './LinkWarningModal';
|
|
|
12
12
|
import { useLinkWarningModal } from './LinkWarningModal/hooks/use-link-warning-modal';
|
|
13
13
|
var PACKAGE_DATA = {
|
|
14
14
|
packageName: "@atlaskit/smart-card",
|
|
15
|
-
packageVersion: "40.8.
|
|
15
|
+
packageVersion: "40.8.3",
|
|
16
16
|
componentName: 'linkUrl'
|
|
17
17
|
};
|
|
18
18
|
var Anchor = withLinkClickedEvent('a');
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
interface UseEmbedResolvePostMessageListenerProps {
|
|
2
|
+
url: string;
|
|
3
|
+
embedIframeRef: React.ForwardedRef<HTMLIFrameElement>;
|
|
4
|
+
}
|
|
5
|
+
export declare const useEmbedResolvePostMessageListener: ({ url, embedIframeRef, }: UseEmbedResolvePostMessageListenerProps) => void;
|
|
6
|
+
export {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
interface UseEmbedResolvePostMessageListenerProps {
|
|
2
|
+
url: string;
|
|
3
|
+
embedIframeRef: React.ForwardedRef<HTMLIFrameElement>;
|
|
4
|
+
}
|
|
5
|
+
export declare const useEmbedResolvePostMessageListener: ({ url, embedIframeRef, }: UseEmbedResolvePostMessageListenerProps) => void;
|
|
6
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/smart-card",
|
|
3
|
-
"version": "40.
|
|
3
|
+
"version": "40.9.0",
|
|
4
4
|
"description": "Smart card component",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
"@atlaskit/linking-types": "^14.0.0",
|
|
57
57
|
"@atlaskit/logo": "^19.6.0",
|
|
58
58
|
"@atlaskit/lozenge": "^13.0.0",
|
|
59
|
-
"@atlaskit/menu": "^8.
|
|
59
|
+
"@atlaskit/menu": "^8.3.0",
|
|
60
60
|
"@atlaskit/modal-dialog": "^14.3.0",
|
|
61
61
|
"@atlaskit/outbound-auth-flow-client": "^3.4.0",
|
|
62
62
|
"@atlaskit/platform-feature-flags": "^1.1.0",
|
|
@@ -102,7 +102,7 @@
|
|
|
102
102
|
"@atlaskit/visual-regression": "workspace:^",
|
|
103
103
|
"@atlassian/analytics-tooling": "^0.5.0",
|
|
104
104
|
"@atlassian/feature-flags-test-utils": "^0.3.0",
|
|
105
|
-
"@atlassian/gemini": "^1.
|
|
105
|
+
"@atlassian/gemini": "^1.20.0",
|
|
106
106
|
"@testing-library/dom": "^10.1.0",
|
|
107
107
|
"@testing-library/jest-dom": "^6.4.5",
|
|
108
108
|
"@testing-library/react": "^13.4.0",
|
|
@@ -243,6 +243,9 @@
|
|
|
243
243
|
},
|
|
244
244
|
"platform_smartlink_3pclick_analytics": {
|
|
245
245
|
"type": "boolean"
|
|
246
|
+
},
|
|
247
|
+
"ptc-enable-embed-team-smart-links": {
|
|
248
|
+
"type": "boolean"
|
|
246
249
|
}
|
|
247
250
|
},
|
|
248
251
|
"compassUnitTestMetricSourceId": "ari:cloud:compass:a436116f-02ce-4520-8fbb-7301462a1674:metric-source/c5751cc6-3513-4070-9deb-af31e86aed34/f74ef1bc-7240-4aac-9dc8-9dc43b502089"
|