@atlaskit/smart-card 44.9.9 → 44.9.11
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 +18 -0
- package/analytics.spec.yaml +0 -8
- package/dist/cjs/__tests__/vr-tests/__snapshots__/inline-card/inline-card-with-all-card-examples-in-text--default--jfp-magma-platform-lozenge-jump-fix-false.png +0 -0
- package/dist/cjs/__tests__/vr-tests/__snapshots__/inline-card/inline-card-with-all-card-examples-in-text--default--jfp-magma-platform-lozenge-jump-fix-true.png +0 -0
- package/dist/cjs/__tests__/vr-tests/__snapshots__/link-url-connect-button/linkurl-default-state--default.png +0 -0
- package/dist/cjs/state/hooks/use-intersection-observer/index.js +2 -1
- package/dist/cjs/state/hooks/use-smart-link-seen-event/index.js +66 -0
- package/dist/cjs/state/hooks/use-social-proof-experiment/index.js +3 -41
- package/dist/cjs/utils/analytics/SmartLinkAnalyticsContext.js +31 -8
- package/dist/cjs/view/BlockCard/views/UnauthorisedView.js +9 -18
- package/dist/cjs/view/CardWithUrl/card-intersection-observer/index.js +25 -20
- package/dist/cjs/view/CardWithUrl/component-lazy/LazyIntersectionObserverCard.js +24 -4
- package/dist/cjs/view/CardWithUrl/component.js +4 -47
- package/dist/cjs/view/InlineCard/Frame/index.js +3 -2
- package/dist/cjs/view/LinkUrl/HyperlinkResolver/index.js +0 -41
- package/dist/es2019/__tests__/vr-tests/__snapshots__/inline-card/inline-card-with-all-card-examples-in-text--default--jfp-magma-platform-lozenge-jump-fix-false.png +0 -0
- package/dist/es2019/__tests__/vr-tests/__snapshots__/inline-card/inline-card-with-all-card-examples-in-text--default--jfp-magma-platform-lozenge-jump-fix-true.png +0 -0
- package/dist/es2019/__tests__/vr-tests/__snapshots__/link-url-connect-button/linkurl-default-state--default.png +0 -0
- package/dist/es2019/state/hooks/use-intersection-observer/index.js +2 -1
- package/dist/es2019/state/hooks/use-smart-link-seen-event/index.js +60 -0
- package/dist/es2019/state/hooks/use-social-proof-experiment/index.js +2 -38
- package/dist/es2019/utils/analytics/SmartLinkAnalyticsContext.js +28 -6
- package/dist/es2019/view/BlockCard/views/UnauthorisedView.js +9 -18
- package/dist/es2019/view/CardWithUrl/card-intersection-observer/index.js +28 -11
- package/dist/es2019/view/CardWithUrl/component-lazy/LazyIntersectionObserverCard.js +25 -4
- package/dist/es2019/view/CardWithUrl/component.js +3 -48
- package/dist/es2019/view/InlineCard/Frame/index.js +3 -2
- package/dist/es2019/view/LinkUrl/HyperlinkResolver/index.js +1 -40
- package/dist/esm/__tests__/vr-tests/__snapshots__/inline-card/inline-card-with-all-card-examples-in-text--default--jfp-magma-platform-lozenge-jump-fix-false.png +0 -0
- package/dist/esm/__tests__/vr-tests/__snapshots__/inline-card/inline-card-with-all-card-examples-in-text--default--jfp-magma-platform-lozenge-jump-fix-true.png +0 -0
- package/dist/esm/__tests__/vr-tests/__snapshots__/link-url-connect-button/linkurl-default-state--default.png +0 -0
- package/dist/esm/state/hooks/use-intersection-observer/index.js +2 -1
- package/dist/esm/state/hooks/use-smart-link-seen-event/index.js +60 -0
- package/dist/esm/state/hooks/use-social-proof-experiment/index.js +2 -40
- package/dist/esm/utils/analytics/SmartLinkAnalyticsContext.js +31 -8
- package/dist/esm/view/BlockCard/views/UnauthorisedView.js +9 -18
- package/dist/esm/view/CardWithUrl/card-intersection-observer/index.js +26 -21
- package/dist/esm/view/CardWithUrl/component-lazy/LazyIntersectionObserverCard.js +24 -4
- package/dist/esm/view/CardWithUrl/component.js +5 -48
- package/dist/esm/view/InlineCard/Frame/index.js +3 -2
- package/dist/esm/view/LinkUrl/HyperlinkResolver/index.js +1 -42
- package/dist/types/common/analytics/generated/analytics.types.d.ts +0 -1
- package/dist/types/state/hooks/use-smart-link-seen-event/index.d.ts +14 -0
- package/dist/types/state/hooks/use-social-proof-experiment/index.d.ts +0 -22
- package/dist/types/utils/analytics/SmartLinkAnalyticsContext.d.ts +10 -0
- package/dist/types/view/CardWithUrl/card-intersection-observer/index.d.ts +3 -5
- package/dist/types/view/CardWithUrl/types.d.ts +0 -1
- package/dist/types-ts4.5/common/analytics/generated/analytics.types.d.ts +0 -1
- package/dist/types-ts4.5/state/hooks/use-smart-link-seen-event/index.d.ts +14 -0
- package/dist/types-ts4.5/state/hooks/use-social-proof-experiment/index.d.ts +0 -22
- package/dist/types-ts4.5/utils/analytics/SmartLinkAnalyticsContext.d.ts +10 -0
- package/dist/types-ts4.5/view/CardWithUrl/card-intersection-observer/index.d.ts +3 -5
- package/dist/types-ts4.5/view/CardWithUrl/types.d.ts +0 -1
- package/package.json +8 -5
- package/dist/cjs/__tests__/vr-tests/__snapshots__/link-url-connect-button/linkurl-default-state-without-connect-button-functionality--default.png +0 -0
- package/dist/cjs/__tests__/vr-tests/__snapshots__/link-url-connect-button/linkurl-resolved-state-with-feature-flag-enabled-should-show-no-connect-button---default--platform-editor-resolve-hyperlinks-killswitch-false.png +0 -0
- package/dist/cjs/__tests__/vr-tests/__snapshots__/link-url-connect-button/linkurl-resolved-state-with-feature-flag-enabled-should-show-no-connect-button---default--platform-editor-resolve-hyperlinks-killswitch-true.png +0 -0
- package/dist/cjs/__tests__/vr-tests/__snapshots__/link-url-connect-button/linkurl-unauthorized-state-with-connect-button-direct-render---always-visible---default.png +0 -0
- package/dist/cjs/view/CardWithUrl/experiment-meta-event-attributes/index.js +0 -39
- package/dist/cjs/view/LinkUrl/HyperlinkResolver/unauthorize-view.js +0 -30
- package/dist/es2019/__tests__/vr-tests/__snapshots__/link-url-connect-button/linkurl-default-state-without-connect-button-functionality--default.png +0 -0
- package/dist/es2019/__tests__/vr-tests/__snapshots__/link-url-connect-button/linkurl-resolved-state-with-feature-flag-enabled-should-show-no-connect-button---default--platform-editor-resolve-hyperlinks-killswitch-false.png +0 -0
- package/dist/es2019/__tests__/vr-tests/__snapshots__/link-url-connect-button/linkurl-resolved-state-with-feature-flag-enabled-should-show-no-connect-button---default--platform-editor-resolve-hyperlinks-killswitch-true.png +0 -0
- package/dist/es2019/__tests__/vr-tests/__snapshots__/link-url-connect-button/linkurl-unauthorized-state-with-connect-button-direct-render---always-visible---default.png +0 -0
- package/dist/es2019/view/CardWithUrl/experiment-meta-event-attributes/index.js +0 -40
- package/dist/es2019/view/LinkUrl/HyperlinkResolver/unauthorize-view.js +0 -22
- package/dist/esm/__tests__/vr-tests/__snapshots__/link-url-connect-button/linkurl-default-state-without-connect-button-functionality--default.png +0 -0
- package/dist/esm/__tests__/vr-tests/__snapshots__/link-url-connect-button/linkurl-resolved-state-with-feature-flag-enabled-should-show-no-connect-button---default--platform-editor-resolve-hyperlinks-killswitch-false.png +0 -0
- package/dist/esm/__tests__/vr-tests/__snapshots__/link-url-connect-button/linkurl-resolved-state-with-feature-flag-enabled-should-show-no-connect-button---default--platform-editor-resolve-hyperlinks-killswitch-true.png +0 -0
- package/dist/esm/__tests__/vr-tests/__snapshots__/link-url-connect-button/linkurl-unauthorized-state-with-connect-button-direct-render---always-visible---default.png +0 -0
- package/dist/esm/view/CardWithUrl/experiment-meta-event-attributes/index.js +0 -32
- package/dist/esm/view/LinkUrl/HyperlinkResolver/unauthorize-view.js +0 -23
- package/dist/types/view/CardWithUrl/experiment-meta-event-attributes/index.d.ts +0 -9
- package/dist/types/view/LinkUrl/HyperlinkResolver/unauthorize-view.d.ts +0 -10
- package/dist/types-ts4.5/view/CardWithUrl/experiment-meta-event-attributes/index.d.ts +0 -9
- package/dist/types-ts4.5/view/LinkUrl/HyperlinkResolver/unauthorize-view.d.ts +0 -10
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# @atlaskit/smart-card
|
|
2
2
|
|
|
3
|
+
## 44.9.11
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`657813a2d7397`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/657813a2d7397) -
|
|
8
|
+
Use useRef to prevent CardSSR to re-render on intersecting into viewport
|
|
9
|
+
|
|
10
|
+
## 44.9.10
|
|
11
|
+
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- [`ebab8f80bfc40`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/ebab8f80bfc40) -
|
|
15
|
+
Clean up the platform_linking_bluelink_connect_CONFLUENCE and
|
|
16
|
+
platform_linking_bluelink_connect_jira no ship code
|
|
17
|
+
- [`ebab8f80bfc40`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/ebab8f80bfc40) -
|
|
18
|
+
NAVX-3611 Fixing the role for inline card when it's an anchor
|
|
19
|
+
- Updated dependencies
|
|
20
|
+
|
|
3
21
|
## 44.9.9
|
|
4
22
|
|
|
5
23
|
### Patch Changes
|
package/analytics.spec.yaml
CHANGED
|
@@ -847,14 +847,6 @@ events:
|
|
|
847
847
|
required: false
|
|
848
848
|
type: boolean
|
|
849
849
|
description: Whether the Rovo Actions CTA (inline nudge) was shown for this Smart Link
|
|
850
|
-
experimentMeta:
|
|
851
|
-
required: false
|
|
852
|
-
type: object
|
|
853
|
-
description: |
|
|
854
|
-
Optional experiment metadata attached to the Smart Link render success event. Root keys
|
|
855
|
-
should be Statsig experiment keys. Each experiment entry can contain metadata specific
|
|
856
|
-
to that experiment, derived from no-exposure eligibility data only unless explicitly
|
|
857
|
-
documented otherwise.
|
|
858
850
|
- smartLink renderFailed:
|
|
859
851
|
type: ui
|
|
860
852
|
description: fires an event that represents when a Smart Link renders unsuccessfully.
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _react = require("react");
|
|
8
|
+
var _utils = require("../../../utils");
|
|
8
9
|
// This property enables the intersection observer to be run once the
|
|
9
10
|
// HTML element being observed is within `X` px of the target container it is
|
|
10
11
|
// being compared to. Since the default container is the `document`, we set this
|
|
@@ -33,7 +34,7 @@ var useIntersectionObserver = function useIntersectionObserver(_ref) {
|
|
|
33
34
|
}
|
|
34
35
|
}, []);
|
|
35
36
|
(0, _react.useEffect)(function () {
|
|
36
|
-
if (!ref.current) {
|
|
37
|
+
if (!(0, _utils.isIntersectionObserverSupported)() || !ref.current) {
|
|
37
38
|
return;
|
|
38
39
|
}
|
|
39
40
|
var intersectionObserver = new IntersectionObserver(onIntersection, {
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useSmartLinkSeenEvent = useSmartLinkSeenEvent;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _useAnalyticsEvents2 = require("../../../common/analytics/generated/use-analytics-events");
|
|
9
|
+
var _SmartLinkAnalyticsContext = require("../../../utils/analytics/SmartLinkAnalyticsContext");
|
|
10
|
+
var _flexible = require("../../../utils/flexible");
|
|
11
|
+
/**
|
|
12
|
+
* Fires `ui.smartLink.seen` once when a smart link with status `unauthorized`
|
|
13
|
+
* enters the viewport. Uses refs internally so it never causes re-renders,
|
|
14
|
+
* which is important for SSR.
|
|
15
|
+
*/
|
|
16
|
+
function useSmartLinkSeenEvent(_ref) {
|
|
17
|
+
var appearance = _ref.appearance,
|
|
18
|
+
children = _ref.children,
|
|
19
|
+
id = _ref.id,
|
|
20
|
+
ui = _ref.ui,
|
|
21
|
+
_ref$url = _ref.url,
|
|
22
|
+
url = _ref$url === void 0 ? '' : _ref$url;
|
|
23
|
+
var _useAnalyticsEvents = (0, _useAnalyticsEvents2.useAnalyticsEvents)(),
|
|
24
|
+
fireEvent = _useAnalyticsEvents.fireEvent;
|
|
25
|
+
var _useSmartLinkAnalytic = (0, _SmartLinkAnalyticsContext.useSmartLinkAnalyticsUtils)(),
|
|
26
|
+
getByUrl = _useSmartLinkAnalytic.getByUrl;
|
|
27
|
+
var getAnalyticsProps = (0, _react.useCallback)(function () {
|
|
28
|
+
var isFlexibleUi = (0, _flexible.isFlexibleUiCard)(children, ui);
|
|
29
|
+
var display = isFlexibleUi ? 'flexible' : appearance;
|
|
30
|
+
return {
|
|
31
|
+
display: display,
|
|
32
|
+
id: id
|
|
33
|
+
};
|
|
34
|
+
}, [appearance, children, id, ui]);
|
|
35
|
+
var statusRef = (0, _react.useRef)();
|
|
36
|
+
var analyticsPropsRef = (0, _react.useRef)(null);
|
|
37
|
+
var hasIntersectedRef = (0, _react.useRef)(false);
|
|
38
|
+
var hasFiredSeenRef = (0, _react.useRef)(false);
|
|
39
|
+
(0, _react.useEffect)(function () {
|
|
40
|
+
analyticsPropsRef.current = getAnalyticsProps();
|
|
41
|
+
}, [getAnalyticsProps]);
|
|
42
|
+
var maybeFireSeenEvent = (0, _react.useCallback)(function () {
|
|
43
|
+
if (!hasFiredSeenRef.current && hasIntersectedRef.current && statusRef.current === 'unauthorized') {
|
|
44
|
+
var payload = getByUrl(url, analyticsPropsRef.current);
|
|
45
|
+
fireEvent('ui.smartLink.seen', payload === null || payload === void 0 ? void 0 : payload.attributes);
|
|
46
|
+
hasFiredSeenRef.current = true;
|
|
47
|
+
}
|
|
48
|
+
}, [fireEvent, getByUrl, url]);
|
|
49
|
+
var onIntersecting = (0, _react.useCallback)(function () {
|
|
50
|
+
if (hasIntersectedRef.current) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
hasIntersectedRef.current = true;
|
|
54
|
+
maybeFireSeenEvent();
|
|
55
|
+
}, [maybeFireSeenEvent]);
|
|
56
|
+
var onStatusSettled = (0, _react.useCallback)(function (status) {
|
|
57
|
+
statusRef.current = status;
|
|
58
|
+
maybeFireSeenEvent();
|
|
59
|
+
}, [maybeFireSeenEvent]);
|
|
60
|
+
return (0, _react.useMemo)(function () {
|
|
61
|
+
return {
|
|
62
|
+
onIntersecting: onIntersecting,
|
|
63
|
+
onStatusSettled: onStatusSettled
|
|
64
|
+
};
|
|
65
|
+
}, [onIntersecting, onStatusSettled]);
|
|
66
|
+
}
|
|
@@ -4,48 +4,11 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.
|
|
8
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
7
|
+
exports.default = void 0;
|
|
9
8
|
var _react = require("react");
|
|
10
9
|
var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
|
|
11
|
-
var _currentSiteCloudId = require("../../services/current-site-cloud-id");
|
|
12
|
-
var _personalization = require("../../services/personalization");
|
|
13
10
|
var _useSocialProof2 = _interopRequireDefault(require("../use-social-proof"));
|
|
14
|
-
|
|
15
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
16
|
-
var SOCIAL_PROOF_3P_UNAUTH_BLOCK_EXPERIMENT_KEY = exports.SOCIAL_PROOF_3P_UNAUTH_BLOCK_EXPERIMENT_KEY = 'social_proof_3p_unauth_block_exp';
|
|
17
|
-
var INLINE_SOCIAL_PROOF_EXPERIMENT_KEY = exports.INLINE_SOCIAL_PROOF_EXPERIMENT_KEY = 'platform_sl_3p_preauth_social_proof_inline_cta';
|
|
18
|
-
var SOCIAL_PROOF_TIER_THRESHOLD = exports.SOCIAL_PROOF_TIER_THRESHOLD = 30;
|
|
19
|
-
var getSocialProofTier = exports.getSocialProofTier = function getSocialProofTier(connectedPct) {
|
|
20
|
-
if (connectedPct === undefined) {
|
|
21
|
-
return undefined;
|
|
22
|
-
}
|
|
23
|
-
return connectedPct >= SOCIAL_PROOF_TIER_THRESHOLD ? 'not-low' : 'low';
|
|
24
|
-
};
|
|
25
|
-
var getSocialProofExperimentMetadata = function getSocialProofExperimentMetadata(_ref) {
|
|
26
|
-
var extensionKey = _ref.extensionKey,
|
|
27
|
-
_ref$baseUriWithNoTra = _ref.baseUriWithNoTrailingSlash,
|
|
28
|
-
baseUriWithNoTrailingSlash = _ref$baseUriWithNoTra === void 0 ? '' : _ref$baseUriWithNoTra;
|
|
29
|
-
if (!extensionKey) {
|
|
30
|
-
return {
|
|
31
|
-
isEligible: false
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
var cloudId = (0, _currentSiteCloudId.getCurrentSiteCloudIdSync)(baseUriWithNoTrailingSlash);
|
|
35
|
-
var providerPctMap = (0, _personalization.getProviderPctMapSync)(cloudId, _personalization.SOCIAL_PROOF_TRAIT_NAME);
|
|
36
|
-
var tier = getSocialProofTier(providerPctMap === null || providerPctMap === void 0 ? void 0 : providerPctMap[extensionKey]);
|
|
37
|
-
return _objectSpread({
|
|
38
|
-
isEligible: tier !== undefined
|
|
39
|
-
}, tier ? {
|
|
40
|
-
tier: tier
|
|
41
|
-
} : {});
|
|
42
|
-
};
|
|
43
|
-
var getSocialProofExperimentMeta = exports.getSocialProofExperimentMeta = function getSocialProofExperimentMeta(params) {
|
|
44
|
-
return (0, _defineProperty2.default)({}, SOCIAL_PROOF_3P_UNAUTH_BLOCK_EXPERIMENT_KEY, getSocialProofExperimentMetadata(params));
|
|
45
|
-
};
|
|
46
|
-
var getInlineSocialProofExperimentMeta = exports.getInlineSocialProofExperimentMeta = function getInlineSocialProofExperimentMeta(params) {
|
|
47
|
-
return (0, _defineProperty2.default)({}, INLINE_SOCIAL_PROOF_EXPERIMENT_KEY, getSocialProofExperimentMetadata(params));
|
|
48
|
-
};
|
|
11
|
+
var TIER_THRESHOLD = 30;
|
|
49
12
|
|
|
50
13
|
/**
|
|
51
14
|
* Returns enrollment and treatment state for the social proof unauth block card experiment.
|
|
@@ -69,12 +32,11 @@ var useSocialProofExperiment = function useSocialProofExperiment(extensionKey) {
|
|
|
69
32
|
isEnabled = _useSocialProof.isEnabled,
|
|
70
33
|
isLoading = _useSocialProof.isLoading;
|
|
71
34
|
return (0, _react.useMemo)(function () {
|
|
72
|
-
var _getSocialProofTier;
|
|
73
35
|
var hasSocialProofData = connectedPct !== undefined;
|
|
74
36
|
|
|
75
37
|
// Only fire exposure when data has loaded (prevents exposure inflation)
|
|
76
38
|
var isTreatment = isEnabled && !isLoading && hasSocialProofData ? (0, _experiments.editorExperiment)('social_proof_3p_unauth_block_exp', true) : false;
|
|
77
|
-
var tier =
|
|
39
|
+
var tier = connectedPct !== undefined && connectedPct >= TIER_THRESHOLD ? 'not-low' : 'low';
|
|
78
40
|
return {
|
|
79
41
|
isTreatment: isTreatment,
|
|
80
42
|
tier: tier,
|
|
@@ -5,11 +5,10 @@ var _typeof = require("@babel/runtime/helpers/typeof");
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.useSmartLinkAnalyticsContext = exports.SmartLinkAnalyticsContext = void 0;
|
|
8
|
+
exports.useSmartLinkAnalyticsUtils = exports.useSmartLinkAnalyticsContext = exports.SmartLinkAnalyticsContext = void 0;
|
|
9
9
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
10
|
var _react = _interopRequireWildcard(require("react"));
|
|
11
11
|
var _analyticsNext = require("@atlaskit/analytics-next");
|
|
12
|
-
var _featureGateJsClient = _interopRequireDefault(require("@atlaskit/feature-gate-js-client"));
|
|
13
12
|
var _resolvedAttributes = require("@atlaskit/link-analytics/resolved-attributes");
|
|
14
13
|
var _linkProvider = require("@atlaskit/link-provider");
|
|
15
14
|
var _linkingCommon = require("@atlaskit/linking-common");
|
|
@@ -34,12 +33,9 @@ var getSmartLinkAnalyticsContext = function getSmartLinkAnalyticsContext(_ref) {
|
|
|
34
33
|
status = _ref.status,
|
|
35
34
|
url = _ref.url,
|
|
36
35
|
error = _ref.error;
|
|
37
|
-
var
|
|
38
|
-
var resolvedAttributes = isHyperlinkConnectExperimentEnabled ? getExtendedResolvedAttributes({
|
|
36
|
+
var resolvedAttributes = getExtendedResolvedAttributes({
|
|
39
37
|
url: url,
|
|
40
38
|
displayCategory: display === 'url' ? 'link' : 'smartLink'
|
|
41
|
-
}, response, status, error) : getExtendedResolvedAttributes({
|
|
42
|
-
url: url
|
|
43
39
|
}, response, status, error);
|
|
44
40
|
return {
|
|
45
41
|
source: source,
|
|
@@ -53,13 +49,40 @@ var getSmartLinkAnalyticsContext = function getSmartLinkAnalyticsContext(_ref) {
|
|
|
53
49
|
* Provides an analytics context data to supply attributes to events based on a URL
|
|
54
50
|
* and the link state in the store
|
|
55
51
|
*/
|
|
52
|
+
var useSmartLinkAnalyticsUtils = exports.useSmartLinkAnalyticsUtils = function useSmartLinkAnalyticsUtils() {
|
|
53
|
+
var _useSmartLinkContext = (0, _linkProvider.useSmartLinkContext)(),
|
|
54
|
+
store = _useSmartLinkContext.store;
|
|
55
|
+
var getByUrl = (0, _react.useCallback)(function (url, props) {
|
|
56
|
+
var state = store ? (0, _linkingCommon.getUrl)(store, url) : undefined;
|
|
57
|
+
return getSmartLinkAnalyticsContext({
|
|
58
|
+
display: props === null || props === void 0 ? void 0 : props.display,
|
|
59
|
+
id: props === null || props === void 0 ? void 0 : props.id,
|
|
60
|
+
response: state === null || state === void 0 ? void 0 : state.details,
|
|
61
|
+
source: props === null || props === void 0 ? void 0 : props.source,
|
|
62
|
+
status: state === null || state === void 0 ? void 0 : state.status,
|
|
63
|
+
url: url,
|
|
64
|
+
error: state === null || state === void 0 ? void 0 : state.error
|
|
65
|
+
});
|
|
66
|
+
}, [store]);
|
|
67
|
+
return (0, _react.useMemo)(function () {
|
|
68
|
+
return {
|
|
69
|
+
getByUrl: getByUrl
|
|
70
|
+
};
|
|
71
|
+
}, [getByUrl]);
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Provides an analytics context data to supply attributes to events based on a URL
|
|
76
|
+
* and the link state in the store
|
|
77
|
+
* @deprecated Use useSmartLinkAnalyticsUtils instead
|
|
78
|
+
*/
|
|
56
79
|
var useSmartLinkAnalyticsContext = exports.useSmartLinkAnalyticsContext = function useSmartLinkAnalyticsContext(_ref2) {
|
|
57
80
|
var display = _ref2.display,
|
|
58
81
|
id = _ref2.id,
|
|
59
82
|
source = _ref2.source,
|
|
60
83
|
url = _ref2.url;
|
|
61
|
-
var
|
|
62
|
-
store =
|
|
84
|
+
var _useSmartLinkContext2 = (0, _linkProvider.useSmartLinkContext)(),
|
|
85
|
+
store = _useSmartLinkContext2.store;
|
|
63
86
|
var state = store ? (0, _linkingCommon.getUrl)(store, url) : undefined;
|
|
64
87
|
return (0, _react.useMemo)(function () {
|
|
65
88
|
return getSmartLinkAnalyticsContext({
|
|
@@ -25,7 +25,7 @@ var _constants = require("../../../constants");
|
|
|
25
25
|
var _messages = require("../../../messages");
|
|
26
26
|
var _flexibleUiContext = require("../../../state/flexible-ui-context");
|
|
27
27
|
var _helpers = require("../../../state/helpers");
|
|
28
|
-
var _useSocialProofExperiment =
|
|
28
|
+
var _useSocialProofExperiment = _interopRequireDefault(require("../../../state/hooks/use-social-proof-experiment"));
|
|
29
29
|
var _UnauthorisedViewContent = _interopRequireDefault(require("../../common/UnauthorisedViewContent"));
|
|
30
30
|
var _FlexibleCard = _interopRequireDefault(require("../../FlexibleCard"));
|
|
31
31
|
var _actionGroup = _interopRequireDefault(require("../../FlexibleCard/components/blocks/action-group"));
|
|
@@ -256,28 +256,19 @@ var UnauthorisedViewWithExperiment = function UnauthorisedViewWithExperiment(_re
|
|
|
256
256
|
isTreatment = _useSocialProofExperi.isTreatment,
|
|
257
257
|
tier = _useSocialProofExperi.tier,
|
|
258
258
|
connectedPct = _useSocialProofExperi.connectedPct;
|
|
259
|
-
var socialProofExperimentMeta = (0, _useSocialProofExperiment.getSocialProofExperimentMeta)({
|
|
260
|
-
extensionKey: extensionKey,
|
|
261
|
-
baseUriWithNoTrailingSlash: connections.client.baseUrlOverride
|
|
262
|
-
});
|
|
263
|
-
var analyticsContextData = {
|
|
264
|
-
attributes: {
|
|
265
|
-
experiment: 'social_proof_3p_unauth_block_exp',
|
|
266
|
-
cohort: isTreatment ? 'treatment' : 'control',
|
|
267
|
-
tier: tier,
|
|
268
|
-
experimentMeta: socialProofExperimentMeta
|
|
269
|
-
}
|
|
270
|
-
};
|
|
271
259
|
if (!isTreatment || !providerName) {
|
|
272
|
-
|
|
260
|
+
return /*#__PURE__*/React.createElement(UnauthorisedViewBase, (0, _extends2.default)({}, props, {
|
|
273
261
|
testId: testId
|
|
274
262
|
}));
|
|
275
|
-
return connectedPct !== undefined ? /*#__PURE__*/React.createElement(_analyticsNext.AnalyticsContext, {
|
|
276
|
-
data: analyticsContextData
|
|
277
|
-
}, fallbackView) : fallbackView;
|
|
278
263
|
}
|
|
279
264
|
return /*#__PURE__*/React.createElement(_analyticsNext.AnalyticsContext, {
|
|
280
|
-
data:
|
|
265
|
+
data: {
|
|
266
|
+
attributes: {
|
|
267
|
+
experiment: 'social_proof_3p_unauth_block_exp',
|
|
268
|
+
cohort: 'treatment',
|
|
269
|
+
tier: tier
|
|
270
|
+
}
|
|
271
|
+
}
|
|
281
272
|
}, /*#__PURE__*/React.createElement(UnauthorisedViewFrame, (0, _extends2.default)({}, props, {
|
|
282
273
|
content: /*#__PURE__*/React.createElement(_SocialProofMessage.default, {
|
|
283
274
|
tier: tier,
|
|
@@ -7,22 +7,36 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.default = void 0;
|
|
9
9
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
11
10
|
var _react = _interopRequireWildcard(require("react"));
|
|
12
11
|
var _useIntersectionObserver = _interopRequireDefault(require("../../../state/hooks/use-intersection-observer"));
|
|
13
|
-
var
|
|
12
|
+
var _useSmartLinkSeenEvent = require("../../../state/hooks/use-smart-link-seen-event");
|
|
14
13
|
var _cardLoaderWrapper = _interopRequireDefault(require("../card-loader-wrapper"));
|
|
15
14
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
16
15
|
var withCardIntersectionObserver = function withCardIntersectionObserver(Component) {
|
|
17
16
|
return function (props) {
|
|
18
17
|
// TODO: NAVX-4682: Add feature parity to LazyIntersectionObserverCard for no lazy loading
|
|
19
|
-
var
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
18
|
+
var appearance = props.appearance,
|
|
19
|
+
children = props.children,
|
|
20
|
+
id = props.id,
|
|
21
|
+
onErrorCallback = props.onError,
|
|
22
|
+
ui = props.ui,
|
|
23
|
+
_props$url = props.url,
|
|
24
|
+
url = _props$url === void 0 ? '' : _props$url;
|
|
25
|
+
var _useSmartLinkSeenEven = (0, _useSmartLinkSeenEvent.useSmartLinkSeenEvent)({
|
|
26
|
+
appearance: appearance,
|
|
27
|
+
children: children,
|
|
28
|
+
id: id,
|
|
29
|
+
ui: ui,
|
|
30
|
+
url: url
|
|
31
|
+
}),
|
|
32
|
+
onIntersecting = _useSmartLinkSeenEven.onIntersecting,
|
|
33
|
+
onStatusSettled = _useSmartLinkSeenEven.onStatusSettled;
|
|
34
|
+
var onError = (0, _react.useCallback)(function (data) {
|
|
35
|
+
if (data !== null && data !== void 0 && data.status) {
|
|
36
|
+
onStatusSettled(data.status);
|
|
37
|
+
}
|
|
38
|
+
onErrorCallback === null || onErrorCallback === void 0 || onErrorCallback(data);
|
|
39
|
+
}, [onStatusSettled, onErrorCallback]);
|
|
26
40
|
var ref = (0, _useIntersectionObserver.default)({
|
|
27
41
|
onIntersecting: onIntersecting
|
|
28
42
|
});
|
|
@@ -30,17 +44,8 @@ var withCardIntersectionObserver = function withCardIntersectionObserver(Compone
|
|
|
30
44
|
appearance: props.appearance,
|
|
31
45
|
ref: ref
|
|
32
46
|
}, /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, props, {
|
|
33
|
-
|
|
47
|
+
onError: onError
|
|
34
48
|
})));
|
|
35
49
|
};
|
|
36
50
|
};
|
|
37
|
-
var
|
|
38
|
-
return function (props) {
|
|
39
|
-
return /*#__PURE__*/_react.default.createElement(_cardLoaderWrapper.default, {
|
|
40
|
-
appearance: props.appearance
|
|
41
|
-
}, /*#__PURE__*/_react.default.createElement(Component, props));
|
|
42
|
-
};
|
|
43
|
-
};
|
|
44
|
-
var _default = exports.default = function _default(Component) {
|
|
45
|
-
return (0, _utils.isIntersectionObserverSupported)() ? withCardIntersectionObserver(Component) : withCardIntersectionObserverFallback(Component);
|
|
46
|
-
};
|
|
51
|
+
var _default = exports.default = withCardIntersectionObserver;
|
|
@@ -13,6 +13,7 @@ var _platformFeatureFlagsReact = require("@atlaskit/platform-feature-flags-react
|
|
|
13
13
|
var _state = require("../../../state");
|
|
14
14
|
var _ufoExperiences = require("../../../state/analytics/ufoExperiences");
|
|
15
15
|
var _useIntersectionObserver = _interopRequireDefault(require("../../../state/hooks/use-intersection-observer"));
|
|
16
|
+
var _useSmartLinkSeenEvent = require("../../../state/hooks/use-smart-link-seen-event");
|
|
16
17
|
var _shouldSample = require("../../../utils/shouldSample");
|
|
17
18
|
var _cardLoaderWrapper = _interopRequireDefault(require("../card-loader-wrapper"));
|
|
18
19
|
var _component = require("../component");
|
|
@@ -82,25 +83,44 @@ var LazyIntersectionObserverCardNew = function LazyIntersectionObserverCardNew(p
|
|
|
82
83
|
_useState8 = (0, _slicedToArray2.default)(_useState7, 1),
|
|
83
84
|
shouldSendRenderedUFOEvent = _useState8[0];
|
|
84
85
|
var appearance = props.appearance,
|
|
85
|
-
|
|
86
|
-
id = props.id
|
|
86
|
+
children = props.children,
|
|
87
|
+
id = props.id,
|
|
88
|
+
onErrorCallback = props.onError,
|
|
89
|
+
ui = props.ui,
|
|
90
|
+
url = props.url;
|
|
87
91
|
var prefetch = (0, _state.usePrefetch)(url);
|
|
88
92
|
var ComponentObserver = appearance === 'inline' ? 'span' : 'div';
|
|
93
|
+
var _useSmartLinkSeenEven = (0, _useSmartLinkSeenEvent.useSmartLinkSeenEvent)({
|
|
94
|
+
appearance: appearance,
|
|
95
|
+
children: children,
|
|
96
|
+
id: id,
|
|
97
|
+
ui: ui,
|
|
98
|
+
url: url
|
|
99
|
+
}),
|
|
100
|
+
onSeenIntersecting = _useSmartLinkSeenEven.onIntersecting,
|
|
101
|
+
onStatusSettled = _useSmartLinkSeenEven.onStatusSettled;
|
|
102
|
+
var onError = (0, _react.useCallback)(function (data) {
|
|
103
|
+
if (data !== null && data !== void 0 && data.status) {
|
|
104
|
+
onStatusSettled(data.status);
|
|
105
|
+
}
|
|
106
|
+
onErrorCallback === null || onErrorCallback === void 0 || onErrorCallback(data);
|
|
107
|
+
}, [onStatusSettled, onErrorCallback]);
|
|
89
108
|
var onIntersection = (0, _react.useCallback)(function (isIntersecting) {
|
|
90
109
|
if (isIntersecting) {
|
|
91
110
|
if (shouldSendRenderedUFOEvent) {
|
|
92
111
|
(0, _ufoExperiences.startUfoExperience)('smart-link-rendered', id);
|
|
93
112
|
}
|
|
113
|
+
onSeenIntersecting();
|
|
94
114
|
setIsIntersected(true);
|
|
95
115
|
} else {
|
|
96
116
|
prefetch();
|
|
97
117
|
}
|
|
98
|
-
}, [id, prefetch, shouldSendRenderedUFOEvent]);
|
|
118
|
+
}, [id, onSeenIntersecting, prefetch, shouldSendRenderedUFOEvent]);
|
|
99
119
|
var ref = (0, _useIntersectionObserver.default)({
|
|
100
120
|
onIntersection: onIntersection
|
|
101
121
|
});
|
|
102
122
|
var content = isIntersected ? /*#__PURE__*/_react.default.createElement(_component.CardWithUrlContent, (0, _extends2.default)({}, props, {
|
|
103
|
-
|
|
123
|
+
onError: onError
|
|
104
124
|
})) : /*#__PURE__*/_react.default.createElement(ComponentObserver, {
|
|
105
125
|
ref: ref
|
|
106
126
|
}, /*#__PURE__*/_react.default.createElement(_LoadingCardLink.LoadingCardLink, props));
|
|
@@ -33,7 +33,6 @@ var _FlexibleCard = _interopRequireDefault(require("../FlexibleCard"));
|
|
|
33
33
|
var _InlineCard = require("../InlineCard");
|
|
34
34
|
var _useSmartLinkEvents = require("../SmartLinkEvents/useSmartLinkEvents");
|
|
35
35
|
var _cardIntersectionObserver = _interopRequireDefault(require("./card-intersection-observer"));
|
|
36
|
-
var _experimentMetaEventAttributes = _interopRequireDefault(require("./experiment-meta-event-attributes"));
|
|
37
36
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
38
37
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
39
38
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
@@ -44,7 +43,6 @@ function Component(_ref) {
|
|
|
44
43
|
url = _ref.url,
|
|
45
44
|
isSelected = _ref.isSelected,
|
|
46
45
|
isHovered = _ref.isHovered,
|
|
47
|
-
isIntersected = _ref.isIntersected,
|
|
48
46
|
frameStyle = _ref.frameStyle,
|
|
49
47
|
platform = _ref.platform,
|
|
50
48
|
onClick = _ref.onClick,
|
|
@@ -72,7 +70,6 @@ function Component(_ref) {
|
|
|
72
70
|
createAnalyticsEvent = _useAnalyticsEventsNe.createAnalyticsEvent;
|
|
73
71
|
var _useAnalyticsEvents = (0, _useAnalyticsEvents3.useAnalyticsEvents)(),
|
|
74
72
|
fireEvent = _useAnalyticsEvents.fireEvent;
|
|
75
|
-
var hasFiredSeenRef = (0, _react.useRef)(false);
|
|
76
73
|
var isFlexibleUi = (0, _react.useMemo)(function () {
|
|
77
74
|
return (0, _flexible.isFlexibleUiCard)(children, ui);
|
|
78
75
|
}, [children, ui]);
|
|
@@ -180,10 +177,6 @@ function Component(_ref) {
|
|
|
180
177
|
var handleInvoke = (0, _react.useCallback)(function (opts) {
|
|
181
178
|
return actions.invoke(opts, appearance);
|
|
182
179
|
}, [actions, appearance]);
|
|
183
|
-
var experimentMetaEventAttributes = (0, _experimentMetaEventAttributes.default)({
|
|
184
|
-
appearance: appearance,
|
|
185
|
-
state: state
|
|
186
|
-
});
|
|
187
180
|
|
|
188
181
|
// NB: for each status change in a Smart Link, a performance mark is created.
|
|
189
182
|
// Measures are sent relative to the first mark, matching what a user sees.
|
|
@@ -227,28 +220,13 @@ function Component(_ref) {
|
|
|
227
220
|
(0, _analytics.succeedUfoExperience)('smart-link-authenticated', id || 'NULL', {
|
|
228
221
|
display: isFlexibleUi ? 'flexible' : appearance
|
|
229
222
|
});
|
|
230
|
-
fireEvent('ui.smartLink.renderSuccess', _objectSpread(
|
|
223
|
+
fireEvent('ui.smartLink.renderSuccess', _objectSpread({
|
|
231
224
|
display: isFlexibleUi ? 'flexible' : appearance
|
|
232
225
|
}, appearance === 'inline' && {
|
|
233
226
|
rovoActionsCtaShown: rovoActionsCtaShown
|
|
234
|
-
}), experimentMetaEventAttributes && {
|
|
235
|
-
experimentMeta: experimentMetaEventAttributes
|
|
236
227
|
}));
|
|
237
228
|
}
|
|
238
|
-
}, [appearance, extensionKey, fireEvent, id, isFlexibleUi, rovoActionsCtaShown, state.status
|
|
239
|
-
|
|
240
|
-
// Fire smartLink seen event once on a successful render card is in the viewport
|
|
241
|
-
(0, _react.useEffect)(function () {
|
|
242
|
-
if ((0, _platformFeatureFlags.fg)('platform_sl_event_ui_seen')) {
|
|
243
|
-
if (state.status !== 'unauthorized') return;
|
|
244
|
-
if (isIntersected && !hasFiredSeenRef.current) {
|
|
245
|
-
fireEvent('ui.smartLink.seen', {
|
|
246
|
-
display: appearance
|
|
247
|
-
});
|
|
248
|
-
hasFiredSeenRef.current = true;
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
}, [state.status, isIntersected, fireEvent, appearance]);
|
|
229
|
+
}, [appearance, extensionKey, fireEvent, id, isFlexibleUi, rovoActionsCtaShown, state.status]);
|
|
252
230
|
var onIframeDwell = (0, _react.useCallback)(function (dwellTime, dwellPercentVisible) {
|
|
253
231
|
fireEvent('ui.smartLinkIframe.dwelled', {
|
|
254
232
|
id: id,
|
|
@@ -371,7 +349,6 @@ function ComponentUpdated(_ref2) {
|
|
|
371
349
|
url = _ref2.url,
|
|
372
350
|
isSelected = _ref2.isSelected,
|
|
373
351
|
isHovered = _ref2.isHovered,
|
|
374
|
-
isIntersected = _ref2.isIntersected,
|
|
375
352
|
frameStyle = _ref2.frameStyle,
|
|
376
353
|
platform = _ref2.platform,
|
|
377
354
|
onClick = _ref2.onClick,
|
|
@@ -399,7 +376,6 @@ function ComponentUpdated(_ref2) {
|
|
|
399
376
|
createAnalyticsEvent = _useAnalyticsEventsNe2.createAnalyticsEvent;
|
|
400
377
|
var _useAnalyticsEvents2 = (0, _useAnalyticsEvents3.useAnalyticsEvents)(),
|
|
401
378
|
fireEvent = _useAnalyticsEvents2.fireEvent;
|
|
402
|
-
var hasFiredSeenRef = (0, _react.useRef)(false);
|
|
403
379
|
var isFlexibleUi = (0, _react.useMemo)(function () {
|
|
404
380
|
return (0, _flexible.isFlexibleUiCard)(children, ui);
|
|
405
381
|
}, [children, ui]);
|
|
@@ -507,10 +483,6 @@ function ComponentUpdated(_ref2) {
|
|
|
507
483
|
var handleInvoke = (0, _react.useCallback)(function (opts) {
|
|
508
484
|
return actions.invoke(opts, appearance);
|
|
509
485
|
}, [actions, appearance]);
|
|
510
|
-
var experimentMetaEventAttributes = (0, _experimentMetaEventAttributes.default)({
|
|
511
|
-
appearance: appearance,
|
|
512
|
-
state: state
|
|
513
|
-
});
|
|
514
486
|
|
|
515
487
|
// NB: for each status change in a Smart Link, a performance mark is created.
|
|
516
488
|
// Measures are sent relative to the first mark, matching what a user sees.
|
|
@@ -554,28 +526,13 @@ function ComponentUpdated(_ref2) {
|
|
|
554
526
|
(0, _analytics.succeedUfoExperience)('smart-link-authenticated', id || 'NULL', {
|
|
555
527
|
display: isFlexibleUi ? 'flexible' : appearance
|
|
556
528
|
});
|
|
557
|
-
fireEvent('ui.smartLink.renderSuccess', _objectSpread(
|
|
529
|
+
fireEvent('ui.smartLink.renderSuccess', _objectSpread({
|
|
558
530
|
display: isFlexibleUi ? 'flexible' : appearance
|
|
559
531
|
}, appearance === 'inline' && {
|
|
560
532
|
rovoActionsCtaShown: rovoActionsCtaShown
|
|
561
|
-
}), experimentMetaEventAttributes && {
|
|
562
|
-
experimentMeta: experimentMetaEventAttributes
|
|
563
533
|
}));
|
|
564
534
|
}
|
|
565
|
-
}, [appearance, extensionKey, fireEvent, id, isFlexibleUi, rovoActionsCtaShown, state.status
|
|
566
|
-
|
|
567
|
-
// Fire smartLink seen event once on a successful render card is in the viewport
|
|
568
|
-
(0, _react.useEffect)(function () {
|
|
569
|
-
if ((0, _platformFeatureFlags.fg)('platform_sl_event_ui_seen')) {
|
|
570
|
-
if (state.status !== 'unauthorized') return;
|
|
571
|
-
if (isIntersected && !hasFiredSeenRef.current) {
|
|
572
|
-
fireEvent('ui.smartLink.seen', {
|
|
573
|
-
display: appearance
|
|
574
|
-
});
|
|
575
|
-
hasFiredSeenRef.current = true;
|
|
576
|
-
}
|
|
577
|
-
}
|
|
578
|
-
}, [state.status, isIntersected, fireEvent, appearance]);
|
|
535
|
+
}, [appearance, extensionKey, fireEvent, id, isFlexibleUi, rovoActionsCtaShown, state.status]);
|
|
579
536
|
var onIframeDwell = (0, _react.useCallback)(function (dwellTime, dwellPercentVisible) {
|
|
580
537
|
fireEvent('ui.smartLinkIframe.dwelled', {
|
|
581
538
|
id: id,
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.Frame = void 0;
|
|
8
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
9
10
|
var _useLinkClicked = require("../../../state/analytics/useLinkClicked");
|
|
10
11
|
var _styled = require("./styled");
|
|
11
12
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
@@ -48,8 +49,8 @@ var Frame = exports.Frame = /*#__PURE__*/(0, _react.forwardRef)(function (props,
|
|
|
48
49
|
withoutBackground: withoutBackground,
|
|
49
50
|
isSelected: isSelected,
|
|
50
51
|
isInteractive: isInteractive,
|
|
51
|
-
tabIndex: isInteractive ? 0 : undefined,
|
|
52
|
-
role: isInteractive ? 'button' : undefined,
|
|
52
|
+
tabIndex: isInteractive && ((0, _platformFeatureFlags.fg)('navx-3611-inline-card-a11y-role-fix') ? !link : true) ? 0 : undefined,
|
|
53
|
+
role: isInteractive && ((0, _platformFeatureFlags.fg)('navx-3611-inline-card-a11y-role-fix') ? !link : true) ? 'button' : undefined,
|
|
53
54
|
onClick: handleClick,
|
|
54
55
|
onMouseDown: handleMouseDown,
|
|
55
56
|
onKeyPress: handleKeyPress,
|