@atlaskit/smart-card 44.5.3 → 44.6.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 +20 -0
- package/dist/cjs/__tests__/vr-tests/__snapshots__/hover-card/hover-card-with-generic-3p-rovo-chat-action--default.png +2 -2
- package/dist/cjs/__tests__/vr-tests/__snapshots__/inline-card/inline-card-unauthorised-social-proof-exploratory-low-share-previewing-headline-and-short-connect-label--default.png +3 -0
- package/dist/cjs/__tests__/vr-tests/__snapshots__/inline-card/inline-card-unauthorised-social-proof-no-context-percentage-headline-with-short-connect-label--default.png +3 -0
- package/dist/cjs/__tests__/vr-tests/__snapshots__/inline-card/inline-card-unauthorised-social-proof-persisted-percentage-previews-headline-30-and-short-connect-label--default.png +3 -0
- package/dist/cjs/messages.js +20 -0
- package/dist/cjs/state/hooks/use-incoming-outgoing-links/index.js +20 -5
- package/dist/cjs/state/hooks/use-inline-action-nudge-experiment/index.js +1 -1
- package/dist/cjs/state/services/current-site-cloud-id/index.js +2 -1
- package/dist/cjs/utils/analytics/analytics.js +1 -1
- package/dist/cjs/view/FlexibleCard/components/actions/action/action-stack-item/action-button.js +1 -1
- package/dist/cjs/view/FlexibleCard/components/actions/ai-summary-action/ai-summarise-action.js +2 -1
- package/dist/cjs/view/FlexibleCard/components/actions/ai-summary-action/ai-summary-action-component.js +2 -1
- package/dist/cjs/view/FlexibleCard/components/actions/automation-action/index.js +2 -1
- package/dist/cjs/view/FlexibleCard/components/actions/copy-link-action/index.js +2 -1
- package/dist/cjs/view/FlexibleCard/components/actions/follow-action/index.js +2 -1
- package/dist/cjs/view/FlexibleCard/components/actions/preview-action/index.js +3 -2
- package/dist/cjs/view/FlexibleCard/components/actions/view-related-links-action/index.js +3 -2
- package/dist/cjs/view/InlineCard/UnauthorisedView/index.compiled.css +21 -0
- package/dist/cjs/view/InlineCard/UnauthorisedView/index.js +108 -14
- package/dist/cjs/view/InlineCard/common/action-button/index.compiled.css +4 -7
- package/dist/cjs/view/InlineCard/common/action-button/index.js +21 -3
- package/dist/cjs/view/LinkUrl/index.js +1 -1
- package/dist/es2019/__tests__/vr-tests/__snapshots__/hover-card/hover-card-with-generic-3p-rovo-chat-action--default.png +2 -2
- package/dist/es2019/__tests__/vr-tests/__snapshots__/inline-card/inline-card-unauthorised-social-proof-exploratory-low-share-previewing-headline-and-short-connect-label--default.png +3 -0
- package/dist/es2019/__tests__/vr-tests/__snapshots__/inline-card/inline-card-unauthorised-social-proof-no-context-percentage-headline-with-short-connect-label--default.png +3 -0
- package/dist/es2019/__tests__/vr-tests/__snapshots__/inline-card/inline-card-unauthorised-social-proof-persisted-percentage-previews-headline-30-and-short-connect-label--default.png +3 -0
- package/dist/es2019/messages.js +20 -0
- package/dist/es2019/state/hooks/use-incoming-outgoing-links/index.js +4 -2
- package/dist/es2019/state/hooks/use-inline-action-nudge-experiment/index.js +1 -1
- package/dist/es2019/state/services/current-site-cloud-id/index.js +2 -2
- package/dist/es2019/utils/analytics/analytics.js +1 -1
- package/dist/es2019/view/FlexibleCard/components/actions/action/action-stack-item/action-button.js +1 -1
- package/dist/es2019/view/FlexibleCard/components/actions/ai-summary-action/ai-summarise-action.js +2 -1
- package/dist/es2019/view/FlexibleCard/components/actions/ai-summary-action/ai-summary-action-component.js +2 -1
- package/dist/es2019/view/FlexibleCard/components/actions/automation-action/index.js +2 -1
- package/dist/es2019/view/FlexibleCard/components/actions/copy-link-action/index.js +2 -1
- package/dist/es2019/view/FlexibleCard/components/actions/follow-action/index.js +2 -1
- package/dist/es2019/view/FlexibleCard/components/actions/preview-action/index.js +3 -2
- package/dist/es2019/view/FlexibleCard/components/actions/view-related-links-action/index.js +3 -2
- package/dist/es2019/view/InlineCard/UnauthorisedView/index.compiled.css +21 -0
- package/dist/es2019/view/InlineCard/UnauthorisedView/index.js +95 -2
- package/dist/es2019/view/InlineCard/common/action-button/index.compiled.css +4 -7
- package/dist/es2019/view/InlineCard/common/action-button/index.js +19 -2
- package/dist/es2019/view/LinkUrl/index.js +1 -1
- package/dist/esm/__tests__/vr-tests/__snapshots__/hover-card/hover-card-with-generic-3p-rovo-chat-action--default.png +2 -2
- package/dist/esm/__tests__/vr-tests/__snapshots__/inline-card/inline-card-unauthorised-social-proof-exploratory-low-share-previewing-headline-and-short-connect-label--default.png +3 -0
- package/dist/esm/__tests__/vr-tests/__snapshots__/inline-card/inline-card-unauthorised-social-proof-no-context-percentage-headline-with-short-connect-label--default.png +3 -0
- package/dist/esm/__tests__/vr-tests/__snapshots__/inline-card/inline-card-unauthorised-social-proof-persisted-percentage-previews-headline-30-and-short-connect-label--default.png +3 -0
- package/dist/esm/messages.js +20 -0
- package/dist/esm/state/hooks/use-incoming-outgoing-links/index.js +20 -5
- package/dist/esm/state/hooks/use-inline-action-nudge-experiment/index.js +1 -1
- package/dist/esm/state/services/current-site-cloud-id/index.js +2 -1
- package/dist/esm/utils/analytics/analytics.js +1 -1
- package/dist/esm/view/FlexibleCard/components/actions/action/action-stack-item/action-button.js +1 -1
- package/dist/esm/view/FlexibleCard/components/actions/ai-summary-action/ai-summarise-action.js +2 -1
- package/dist/esm/view/FlexibleCard/components/actions/ai-summary-action/ai-summary-action-component.js +2 -1
- package/dist/esm/view/FlexibleCard/components/actions/automation-action/index.js +2 -1
- package/dist/esm/view/FlexibleCard/components/actions/copy-link-action/index.js +2 -1
- package/dist/esm/view/FlexibleCard/components/actions/follow-action/index.js +2 -1
- package/dist/esm/view/FlexibleCard/components/actions/preview-action/index.js +3 -2
- package/dist/esm/view/FlexibleCard/components/actions/view-related-links-action/index.js +3 -2
- package/dist/esm/view/InlineCard/UnauthorisedView/index.compiled.css +21 -0
- package/dist/esm/view/InlineCard/UnauthorisedView/index.js +108 -14
- package/dist/esm/view/InlineCard/common/action-button/index.compiled.css +4 -7
- package/dist/esm/view/InlineCard/common/action-button/index.js +21 -3
- package/dist/esm/view/LinkUrl/index.js +1 -1
- package/dist/types/messages.d.ts +1 -1
- package/dist/types/state/services/current-site-cloud-id/index.d.ts +1 -1
- package/dist/types/view/InlineCard/UnauthorisedView/index.d.ts +1 -1
- package/dist/types/view/InlineCard/common/action-button/index.d.ts +7 -0
- package/dist/types-ts4.5/messages.d.ts +1 -1
- package/dist/types-ts4.5/state/services/current-site-cloud-id/index.d.ts +1 -1
- package/dist/types-ts4.5/view/InlineCard/UnauthorisedView/index.d.ts +1 -1
- package/dist/types-ts4.5/view/InlineCard/common/action-button/index.d.ts +7 -0
- package/package.json +6 -3
package/dist/es2019/messages.js
CHANGED
|
@@ -175,6 +175,26 @@ export const messages = defineMessages({
|
|
|
175
175
|
defaultMessage: 'Connect to {context}',
|
|
176
176
|
description: 'Shown on a button to connect user external account to their Atlassian account.'
|
|
177
177
|
},
|
|
178
|
+
connect_inline_social_proof: {
|
|
179
|
+
id: 'fabric.linking.connect_inline_social_proof',
|
|
180
|
+
defaultMessage: 'Connect',
|
|
181
|
+
description: 'Shown on a button for unauthorised inline smart links when the social proof inline CTA experiment is active. Replaces the longer "Connect your {context} account" label.'
|
|
182
|
+
},
|
|
183
|
+
social_proof_inline_cta_tag_high_with_context: {
|
|
184
|
+
id: 'fabric.linking.social_proof_inline_cta_tag_high_with_context',
|
|
185
|
+
defaultMessage: '<b>{connectedPct}%</b> of your team previews {context}',
|
|
186
|
+
description: 'Social-proof tag pill beside the shortcut "Connect" on an unauthorised inline smart link when adoption is not in the exploratory range. {connectedPct} is the approximate share previewing/using the integration; {context} is the provider display name.'
|
|
187
|
+
},
|
|
188
|
+
social_proof_inline_cta_tag_high_no_context: {
|
|
189
|
+
id: 'fabric.linking.social_proof_inline_cta_tag_high_no_context',
|
|
190
|
+
defaultMessage: '<b>{connectedPct}%</b> of your team previews this',
|
|
191
|
+
description: 'Social-proof tag pill when adoption is above the exploratory threshold and no provider display name is available; {connectedPct} is the approximate share previewing the integration.'
|
|
192
|
+
},
|
|
193
|
+
social_proof_inline_cta_tag_low_with_context: {
|
|
194
|
+
id: 'fabric.linking.social_proof_inline_cta_tag_low_with_context',
|
|
195
|
+
defaultMessage: 'Your team is previewing {context}',
|
|
196
|
+
description: 'Social-proof tag pill when share is below the percentage headline threshold; shown only when a provider display name is available. Omit the pill entirely when personalization is unavailable or the provider name is unknown.'
|
|
197
|
+
},
|
|
178
198
|
connect_unauthorised_account_description: {
|
|
179
199
|
id: 'fabric.linking.connect_unauthorised_account_description',
|
|
180
200
|
defaultMessage: 'Connect your {context} account to collaborate on work across Atlassian products.',
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { useCallback, useMemo } from 'react';
|
|
2
2
|
import { request } from '@atlaskit/linking-common';
|
|
3
|
+
import { fg } from '@atlaskit/platform-feature-flags';
|
|
4
|
+
import { getCurrentSiteCloudId } from '../use-current-site-cloud-id';
|
|
3
5
|
import { queryIncomingOutgoingLinks as queryIncomingOutgoingAris } from './query';
|
|
4
6
|
/**
|
|
5
7
|
* @param baseUriWithNoTrailingSlash base url which will then be appended with /gateway/api/graphql to make requests to AGG
|
|
@@ -31,8 +33,8 @@ const useIncomingOutgoingAri = (baseUriWithNoTrailingSlash = '') => {
|
|
|
31
33
|
if (match && match[2]) {
|
|
32
34
|
return match[2]; // Return the cloud_id (siteId)
|
|
33
35
|
}
|
|
34
|
-
return await getCurrentSiteId();
|
|
35
|
-
}, [getCurrentSiteId]);
|
|
36
|
+
return fg('platform_sl_3p_preauth_soc_proof_inline_killswitch') ? await getCurrentSiteCloudId(baseUriWithNoTrailingSlash) : await getCurrentSiteId();
|
|
37
|
+
}, [getCurrentSiteId, baseUriWithNoTrailingSlash]);
|
|
36
38
|
const getIncomingOutgoingAris = useCallback(
|
|
37
39
|
/**
|
|
38
40
|
* Returning aris linking to (outgoing) and from (incoming) a given ari from AGS using
|
|
@@ -36,7 +36,7 @@ const useInlineActionNudgeExperiment = (url, showHoverPreview, actionOptions) =>
|
|
|
36
36
|
if (!isRovoChatEnabled || !showHoverPreview || !url || !isRovoChatActionOptedIn) {
|
|
37
37
|
return NOT_ENABLED_RESULT;
|
|
38
38
|
}
|
|
39
|
-
if (extensionKey
|
|
39
|
+
if (!extensionKey || !ELIGIBLE_EXTENSION_KEYS.has(extensionKey)) {
|
|
40
40
|
return NOT_ENABLED_RESULT;
|
|
41
41
|
}
|
|
42
42
|
const isEnabled = expValEquals('rovogrowth-640-inline-action-nudge-exp', 'isEnabled', true);
|
|
@@ -92,10 +92,10 @@ export class CurrentSiteCloudIdService {
|
|
|
92
92
|
}
|
|
93
93
|
return this.tenantInfoInflightPromise;
|
|
94
94
|
}
|
|
95
|
-
|
|
96
|
-
/** Clears the session pin so the next {@link get} may run `tenant_info` again (e.g. tests). */
|
|
95
|
+
/** Clears session pin and persisted storage so the next {@link get} is a fresh tenant_info fetch. */
|
|
97
96
|
clearCache() {
|
|
98
97
|
this.tenantInfoInflightPromise = null;
|
|
98
|
+
smartCardStorage.removeItem(CURRENT_SITE_CLOUD_ID_STORAGE_ITEM_KEY);
|
|
99
99
|
}
|
|
100
100
|
}
|
|
101
101
|
export const currentSiteCloudIdService = new CurrentSiteCloudIdService();
|
|
@@ -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: "44.5.
|
|
5
|
+
packageVersion: "44.5.4" || ''
|
|
6
6
|
};
|
|
7
7
|
export let TrackQuickActionType = /*#__PURE__*/function (TrackQuickActionType) {
|
|
8
8
|
TrackQuickActionType["StatusUpdate"] = "StatusUpdate";
|
package/dist/es2019/view/FlexibleCard/components/actions/action/action-stack-item/action-button.js
CHANGED
|
@@ -75,7 +75,7 @@ const ActionButton = ({
|
|
|
75
75
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop
|
|
76
76
|
,
|
|
77
77
|
style: style
|
|
78
|
-
}, fg('platform_sl_3p_auth_rovo_action_kill_switch') ? {
|
|
78
|
+
}, fg('platform_sl_3p_auth_rovo_action_kill_switch') || expValEqualsNoExposure('rovogrowth-640-inline-action-nudge-exp', 'isEnabled', true) ? {
|
|
79
79
|
'aria-label': ariaLabel
|
|
80
80
|
} : {}), /*#__PURE__*/React.createElement(Inline, {
|
|
81
81
|
alignBlock: "center",
|
package/dist/es2019/view/FlexibleCard/components/actions/ai-summary-action/ai-summarise-action.js
CHANGED
|
@@ -3,6 +3,7 @@ import React, { useCallback } from 'react';
|
|
|
3
3
|
import { FormattedMessage } from 'react-intl';
|
|
4
4
|
import AiIcon from '@atlaskit/icon/core/atlassian-intelligence';
|
|
5
5
|
import { fg } from '@atlaskit/platform-feature-flags';
|
|
6
|
+
import { expValEqualsNoExposure } from '@atlaskit/tmp-editor-statsig/exp-val-equals-no-exposure';
|
|
6
7
|
import { useAnalyticsEvents } from '../../../../../common/analytics/generated/use-analytics-events';
|
|
7
8
|
import { messages } from '../../../../../messages';
|
|
8
9
|
import Action from '../action';
|
|
@@ -40,7 +41,7 @@ export function AISummariseAction({
|
|
|
40
41
|
spacing: "spacious",
|
|
41
42
|
color: "currentColor",
|
|
42
43
|
label: "Summarise with AI"
|
|
43
|
-
}, fg('platform_sl_3p_auth_rovo_action_kill_switch') || fg('platform_sl_3p_auth_rovo_block_card_kill_switch') ? {
|
|
44
|
+
}, fg('platform_sl_3p_auth_rovo_action_kill_switch') || fg('platform_sl_3p_auth_rovo_block_card_kill_switch') || expValEqualsNoExposure('rovogrowth-640-inline-action-nudge-exp', 'isEnabled', true) ? {
|
|
44
45
|
size: props.iconSize
|
|
45
46
|
} : {})),
|
|
46
47
|
onClick: handleActionClick,
|
|
@@ -2,6 +2,7 @@ import _extends from "@babel/runtime/helpers/extends";
|
|
|
2
2
|
import React, { useEffect } from 'react';
|
|
3
3
|
import { di } from 'react-magnetic-di';
|
|
4
4
|
import { fg } from '@atlaskit/platform-feature-flags';
|
|
5
|
+
import { expValEqualsNoExposure } from '@atlaskit/tmp-editor-statsig/exp-val-equals-no-exposure';
|
|
5
6
|
import useAISummaryAction from '../../../../../state/hooks/use-ai-summary-action';
|
|
6
7
|
import { AISummariseAction } from './ai-summarise-action';
|
|
7
8
|
import { CopySummaryAction, CopySummaryActionNew } from './copy-summary-action';
|
|
@@ -21,7 +22,7 @@ export const AISummaryActionComponent = props => {
|
|
|
21
22
|
useEffect(() => {
|
|
22
23
|
onLoadingChange === null || onLoadingChange === void 0 ? void 0 : onLoadingChange(status === 'loading');
|
|
23
24
|
}, [onLoadingChange, status]);
|
|
24
|
-
return status === 'done' ? fg('platform_sl_3p_auth_rovo_action_kill_switch') ? /*#__PURE__*/React.createElement(CopySummaryActionNew, _extends({}, props, {
|
|
25
|
+
return status === 'done' ? fg('platform_sl_3p_auth_rovo_action_kill_switch') || expValEqualsNoExposure('rovogrowth-640-inline-action-nudge-exp', 'isEnabled', true) ? /*#__PURE__*/React.createElement(CopySummaryActionNew, _extends({}, props, {
|
|
25
26
|
summary: content,
|
|
26
27
|
testId: testId
|
|
27
28
|
})) : /*#__PURE__*/React.createElement(CopySummaryAction, _extends({}, props, {
|
|
@@ -4,6 +4,7 @@ import { FormattedMessage, useIntl } from 'react-intl';
|
|
|
4
4
|
import AutomationIcon from '@atlaskit/icon/core/automation';
|
|
5
5
|
import { fg } from '@atlaskit/platform-feature-flags';
|
|
6
6
|
import { Text } from '@atlaskit/primitives/compiled';
|
|
7
|
+
import { expValEqualsNoExposure } from '@atlaskit/tmp-editor-statsig/exp-val-equals-no-exposure';
|
|
7
8
|
import { useAnalyticsEvents } from '../../../../../common/analytics/generated/use-analytics-events';
|
|
8
9
|
import { ActionName } from '../../../../../constants';
|
|
9
10
|
import { messages } from '../../../../../messages';
|
|
@@ -76,7 +77,7 @@ const AutomationAction = props => {
|
|
|
76
77
|
spacing: "spacious",
|
|
77
78
|
color: "currentColor",
|
|
78
79
|
label: automationActionIconLabel
|
|
79
|
-
}, fg('platform_sl_3p_auth_rovo_action_kill_switch') || fg('platform_sl_3p_auth_rovo_block_card_kill_switch') ? {
|
|
80
|
+
}, fg('platform_sl_3p_auth_rovo_action_kill_switch') || fg('platform_sl_3p_auth_rovo_block_card_kill_switch') || expValEqualsNoExposure('rovogrowth-640-inline-action-nudge-exp', 'isEnabled', true) ? {
|
|
80
81
|
size: props.iconSize
|
|
81
82
|
} : {})),
|
|
82
83
|
testId: "smart-action-automation-action",
|
|
@@ -3,6 +3,7 @@ import React, { useCallback, useState } from 'react';
|
|
|
3
3
|
import { FormattedMessage } from 'react-intl';
|
|
4
4
|
import LinkIcon from '@atlaskit/icon/core/link';
|
|
5
5
|
import { fg } from '@atlaskit/platform-feature-flags';
|
|
6
|
+
import { expValEqualsNoExposure } from '@atlaskit/tmp-editor-statsig/exp-val-equals-no-exposure';
|
|
6
7
|
import { ActionName } from '../../../../../constants';
|
|
7
8
|
import { messages } from '../../../../../messages';
|
|
8
9
|
import { useFlexibleUiContext } from '../../../../../state/flexible-ui-context';
|
|
@@ -36,7 +37,7 @@ const CopyLinkAction = ({
|
|
|
36
37
|
color: "currentColor",
|
|
37
38
|
label: fg('navx-3698-flexible-card-a11y-fix') ? '' : 'copy url',
|
|
38
39
|
spacing: "spacious"
|
|
39
|
-
}, fg('platform_sl_3p_auth_rovo_action_kill_switch') || fg('platform_sl_3p_auth_rovo_block_card_kill_switch') ? {
|
|
40
|
+
}, fg('platform_sl_3p_auth_rovo_action_kill_switch') || fg('platform_sl_3p_auth_rovo_block_card_kill_switch') || expValEqualsNoExposure('rovogrowth-640-inline-action-nudge-exp', 'isEnabled', true) ? {
|
|
40
41
|
size: props.iconSize
|
|
41
42
|
} : {})),
|
|
42
43
|
onClick: onClick,
|
|
@@ -3,6 +3,7 @@ import React from 'react';
|
|
|
3
3
|
import { FormattedMessage, useIntl } from 'react-intl';
|
|
4
4
|
import FeatureGates from '@atlaskit/feature-gate-js-client';
|
|
5
5
|
import { fg } from '@atlaskit/platform-feature-flags';
|
|
6
|
+
import { expValEqualsNoExposure } from '@atlaskit/tmp-editor-statsig/exp-val-equals-no-exposure';
|
|
6
7
|
import { ActionName } from '../../../../../constants';
|
|
7
8
|
import { messages } from '../../../../../messages';
|
|
8
9
|
import { useFlexibleUiContext } from '../../../../../state/flexible-ui-context';
|
|
@@ -69,7 +70,7 @@ const FollowAction = props => {
|
|
|
69
70
|
};
|
|
70
71
|
return /*#__PURE__*/React.createElement(ServerAction, _extends({
|
|
71
72
|
content: /*#__PURE__*/React.createElement(FormattedMessage, label)
|
|
72
|
-
}, fg('platform_sl_3p_auth_rovo_action_kill_switch') ? {
|
|
73
|
+
}, fg('platform_sl_3p_auth_rovo_action_kill_switch') || expValEqualsNoExposure('rovogrowth-640-inline-action-nudge-exp', 'isEnabled', true) ? {
|
|
73
74
|
ariaLabel: intl.formatMessage(label)
|
|
74
75
|
} : {}, {
|
|
75
76
|
icon: followIcon,
|
|
@@ -5,6 +5,7 @@ import MediaServicesActualSizeIcon from '@atlaskit/icon/core/grow-diagonal';
|
|
|
5
5
|
import PanelRightIcon from '@atlaskit/icon/core/panel-right';
|
|
6
6
|
import { fg } from '@atlaskit/platform-feature-flags';
|
|
7
7
|
import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
|
|
8
|
+
import { expValEqualsNoExposure } from '@atlaskit/tmp-editor-statsig/exp-val-equals-no-exposure';
|
|
8
9
|
import { ActionName } from '../../../../../constants';
|
|
9
10
|
import { messages } from '../../../../../messages';
|
|
10
11
|
import { useFlexibleUiContext } from '../../../../../state/flexible-ui-context';
|
|
@@ -34,7 +35,7 @@ const PreviewAction = ({
|
|
|
34
35
|
color: "currentColor",
|
|
35
36
|
spacing: "spacious",
|
|
36
37
|
label: fg('navx-3698-flexible-card-a11y-fix') ? '' : 'Open preview panel'
|
|
37
|
-
}, fg('platform_sl_3p_auth_rovo_action_kill_switch') || fg('platform_sl_3p_auth_rovo_block_card_kill_switch') ? {
|
|
38
|
+
}, fg('platform_sl_3p_auth_rovo_action_kill_switch') || fg('platform_sl_3p_auth_rovo_block_card_kill_switch') || expValEqualsNoExposure('rovogrowth-640-inline-action-nudge-exp', 'isEnabled', true) ? {
|
|
38
39
|
size: props.iconSize
|
|
39
40
|
} : {}));
|
|
40
41
|
}
|
|
@@ -42,7 +43,7 @@ const PreviewAction = ({
|
|
|
42
43
|
color: "currentColor",
|
|
43
44
|
spacing: "spacious",
|
|
44
45
|
label: fg('navx-3698-flexible-card-a11y-fix') ? '' : 'Open preview'
|
|
45
|
-
}, fg('platform_sl_3p_auth_rovo_action_kill_switch') || fg('platform_sl_3p_auth_rovo_block_card_kill_switch') ? {
|
|
46
|
+
}, fg('platform_sl_3p_auth_rovo_action_kill_switch') || fg('platform_sl_3p_auth_rovo_block_card_kill_switch') || expValEqualsNoExposure('rovogrowth-640-inline-action-nudge-exp', 'isEnabled', true) ? {
|
|
46
47
|
size: props.iconSize
|
|
47
48
|
} : {}));
|
|
48
49
|
}, [hasPreviewPanel, props.iconSize]);
|
|
@@ -2,6 +2,7 @@ import _extends from "@babel/runtime/helpers/extends";
|
|
|
2
2
|
import React, { lazy, useCallback } from 'react';
|
|
3
3
|
import { FormattedMessage } from 'react-intl';
|
|
4
4
|
import { fg } from '@atlaskit/platform-feature-flags';
|
|
5
|
+
import { expValEqualsNoExposure } from '@atlaskit/tmp-editor-statsig/exp-val-equals-no-exposure';
|
|
5
6
|
import { useAnalyticsEvents } from '../../../../../common/analytics/generated/use-analytics-events';
|
|
6
7
|
import { messages } from '../../../../../messages';
|
|
7
8
|
import { useFlexibleUiContext } from '../../../../../state/flexible-ui-context';
|
|
@@ -34,10 +35,10 @@ const ViewRelatedLinksAction = ({
|
|
|
34
35
|
}, [actionData === null || actionData === void 0 ? void 0 : actionData.ari, fireEvent, modal, onClickCallback]);
|
|
35
36
|
return actionData ? /*#__PURE__*/React.createElement(Action, _extends({
|
|
36
37
|
content: /*#__PURE__*/React.createElement(FormattedMessage, messages.related_links_view_related_links)
|
|
37
|
-
}, fg('platform_sl_3p_auth_rovo_action_kill_switch') ? {
|
|
38
|
+
}, fg('platform_sl_3p_auth_rovo_action_kill_switch') || expValEqualsNoExposure('rovogrowth-640-inline-action-nudge-exp', 'isEnabled', true) ? {
|
|
38
39
|
tooltipMessage: /*#__PURE__*/React.createElement(FormattedMessage, messages.related_links_view_related_links)
|
|
39
40
|
} : {}, {
|
|
40
|
-
icon: /*#__PURE__*/React.createElement(RelatedLinksActionIcon, fg('platform_sl_3p_auth_rovo_action_kill_switch') ? {
|
|
41
|
+
icon: /*#__PURE__*/React.createElement(RelatedLinksActionIcon, fg('platform_sl_3p_auth_rovo_action_kill_switch') || expValEqualsNoExposure('rovogrowth-640-inline-action-nudge-exp', 'isEnabled', true) ? {
|
|
41
42
|
iconSize: props.iconSize
|
|
42
43
|
} : {}),
|
|
43
44
|
onClick: onClick,
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
|
|
2
|
+
._2rko12b0{border-radius:var(--ds-radius-small,4px)}._18m915vq{overflow-y:hidden}
|
|
3
|
+
._19bv12x7{padding-left:var(--ds-space-075,6px)}
|
|
4
|
+
._1bto1l2s{text-overflow:ellipsis}
|
|
5
|
+
._1e0c116y{display:inline-flex}
|
|
6
|
+
._1e0c1nu9{display:inline}
|
|
7
|
+
._1reo15vq{overflow-x:hidden}
|
|
8
|
+
._1wybtjj4{font-size:.8em}
|
|
9
|
+
._2hwx1b66{margin-right:var(--ds-space-050,4px)}
|
|
10
|
+
._4cvr1h6o{align-items:center}
|
|
11
|
+
._bfhk1dpa{background-color:var(--ds-background-neutral-subtle-hovered,#0515240f)}
|
|
12
|
+
._ca0qv77o{padding-top:var(--ds-space-025,2px)}
|
|
13
|
+
._k48pwu06{font-weight:var(--ds-font-weight-bold,653)}
|
|
14
|
+
._n3tdv77o{padding-bottom:var(--ds-space-025,2px)}
|
|
15
|
+
._o5721q9c{white-space:nowrap}
|
|
16
|
+
._p12f1osq{max-width:100%}
|
|
17
|
+
._s7n4t94y{vertical-align:1px}
|
|
18
|
+
._syazazsu{color:var(--ds-text-subtle,#505258)}
|
|
19
|
+
._u5f312x7{padding-right:var(--ds-space-075,6px)}
|
|
20
|
+
._vchhusvi{box-sizing:border-box}
|
|
21
|
+
._y3gn18uv{text-align:initial}
|
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
/* index.tsx generated by @compiled/babel-plugin v0.39.1 */
|
|
2
2
|
import _extends from "@babel/runtime/helpers/extends";
|
|
3
|
+
import "./index.compiled.css";
|
|
3
4
|
import { ax, ix } from "@compiled/react/runtime";
|
|
4
5
|
import React from 'react';
|
|
5
6
|
import { FormattedMessage } from 'react-intl';
|
|
7
|
+
import { di } from 'react-magnetic-di';
|
|
6
8
|
import LockLockedIcon from '@atlaskit/icon/core/lock-locked';
|
|
9
|
+
import { fg } from '@atlaskit/platform-feature-flags';
|
|
10
|
+
import { Box } from '@atlaskit/primitives/compiled';
|
|
11
|
+
import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
|
|
7
12
|
import { useAnalyticsEvents } from '../../../common/analytics/generated/use-analytics-events';
|
|
8
13
|
import { messages } from '../../../messages';
|
|
14
|
+
import { getCachedProviderPctMapAndRefresh } from '../../../state/services/personalization';
|
|
9
15
|
import { HoverCard } from '../../HoverCard';
|
|
10
16
|
import { ActionButton } from '../common/action-button';
|
|
11
17
|
import { Frame } from '../Frame';
|
|
@@ -16,6 +22,86 @@ const fallbackUnauthorizedIcon = () => {
|
|
|
16
22
|
label: "error"
|
|
17
23
|
});
|
|
18
24
|
};
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* When persisted personalization adoption from {@link getCachedProviderPctMapAndRefresh} is strictly below this value,
|
|
28
|
+
* the pill uses exploratory "previewing" copy instead of a percentage headline.
|
|
29
|
+
*/
|
|
30
|
+
const SOCIAL_PROOF_TEAM_PREVIEW_THRESHOLD = 30;
|
|
31
|
+
const SOCIAL_PROOF_TRAIT_NAME = 'sl_3p_connected_providers_site_pct';
|
|
32
|
+
const socialProofPillStyles = {
|
|
33
|
+
strong: "_k48pwu06",
|
|
34
|
+
inlineContainer: "_1e0c116y _4cvr1h6o",
|
|
35
|
+
root: "_2rko12b0 _1e0c1nu9 _4cvr1h6o _vchhusvi _p12f1osq _bfhk1dpa _syazazsu _y3gn18uv _1wybtjj4 _s7n4t94y _ca0qv77o _n3tdv77o _u5f312x7 _19bv12x7 _2hwx1b66",
|
|
36
|
+
label: "_1reo15vq _18m915vq _1bto1l2s _o5721q9c"
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Renders the social-proof pill and Connect button using persisted percentages only ({@link getCachedProviderPctMapAndRefresh}) — no
|
|
41
|
+
* loading skeleton; either the cached percentage is shown or the legacy long connect label is used.
|
|
42
|
+
*
|
|
43
|
+
* Only mounted when the parent has passed the killswitch and
|
|
44
|
+
* `platform_sl_3p_preauth_social_proof_inline_cta`. See platform docs: `rules-of-hooks.md` "Should §1".
|
|
45
|
+
*/
|
|
46
|
+
const UnauthorisedConnectWithSocialProof = ({
|
|
47
|
+
context,
|
|
48
|
+
extensionKey,
|
|
49
|
+
testId,
|
|
50
|
+
onConnectClick
|
|
51
|
+
}) => {
|
|
52
|
+
var _context$trim;
|
|
53
|
+
// TODO We need to decide what should we do with FedRAMP. It will not work there (_edge/tenant_info is not available) but so maybe
|
|
54
|
+
// we can just leave it like that and whole feature won't trigger befcause of that.
|
|
55
|
+
const providerPctMap = getCachedProviderPctMapAndRefresh(SOCIAL_PROOF_TRAIT_NAME);
|
|
56
|
+
const connectedPct = extensionKey && providerPctMap ? providerPctMap[extensionKey] : undefined;
|
|
57
|
+
const isEnabled = true;
|
|
58
|
+
const trimmedProviderDisplayName = (_context$trim = context === null || context === void 0 ? void 0 : context.trim()) !== null && _context$trim !== void 0 ? _context$trim : '';
|
|
59
|
+
const hasProviderDisplayName = trimmedProviderDisplayName.length > 0;
|
|
60
|
+
const isSocialProofUsageHighEnough = connectedPct !== undefined && connectedPct >= SOCIAL_PROOF_TEAM_PREVIEW_THRESHOLD;
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Persisted personalization is required. Below {@link SOCIAL_PROOF_TEAM_PREVIEW_THRESHOLD} adoption we also require
|
|
64
|
+
* a provider display name; otherwise omit the pill and use the legacy long connect treatment.
|
|
65
|
+
*/
|
|
66
|
+
const showSocialProofPill = isEnabled && connectedPct !== undefined && (isSocialProofUsageHighEnough || hasProviderDisplayName);
|
|
67
|
+
const bold = chunks => /*#__PURE__*/React.createElement(Box, {
|
|
68
|
+
as: "strong",
|
|
69
|
+
xcss: socialProofPillStyles.strong
|
|
70
|
+
}, chunks);
|
|
71
|
+
const socialProofPillContent = isSocialProofUsageHighEnough ? hasProviderDisplayName ? /*#__PURE__*/React.createElement(FormattedMessage, _extends({}, messages.social_proof_inline_cta_tag_high_with_context, {
|
|
72
|
+
values: {
|
|
73
|
+
connectedPct,
|
|
74
|
+
context: trimmedProviderDisplayName,
|
|
75
|
+
b: bold
|
|
76
|
+
}
|
|
77
|
+
})) : /*#__PURE__*/React.createElement(FormattedMessage, _extends({}, messages.social_proof_inline_cta_tag_high_no_context, {
|
|
78
|
+
values: {
|
|
79
|
+
connectedPct,
|
|
80
|
+
b: bold
|
|
81
|
+
}
|
|
82
|
+
})) : /*#__PURE__*/React.createElement(FormattedMessage, _extends({}, messages.social_proof_inline_cta_tag_low_with_context, {
|
|
83
|
+
values: {
|
|
84
|
+
context: trimmedProviderDisplayName
|
|
85
|
+
}
|
|
86
|
+
}));
|
|
87
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, showSocialProofPill ? /*#__PURE__*/React.createElement(Box, {
|
|
88
|
+
as: "span",
|
|
89
|
+
xcss: socialProofPillStyles.root,
|
|
90
|
+
testId: `${testId}-social-proof-tag`
|
|
91
|
+
}, /*#__PURE__*/React.createElement(Box, {
|
|
92
|
+
as: "span",
|
|
93
|
+
xcss: socialProofPillStyles.label
|
|
94
|
+
}, socialProofPillContent)) : null, /*#__PURE__*/React.createElement(ActionButton, {
|
|
95
|
+
onClick: onConnectClick,
|
|
96
|
+
viewType: "unauthorised",
|
|
97
|
+
testId: "button-connect-account",
|
|
98
|
+
isSocialProofInlineUnauthorisedConnect: showSocialProofPill
|
|
99
|
+
}, showSocialProofPill ? /*#__PURE__*/React.createElement(FormattedMessage, messages.connect_inline_social_proof) : /*#__PURE__*/React.createElement(FormattedMessage, _extends({}, messages.connect_link_account_card_name, {
|
|
100
|
+
values: {
|
|
101
|
+
context
|
|
102
|
+
}
|
|
103
|
+
}))));
|
|
104
|
+
};
|
|
19
105
|
export const InlineCardUnauthorizedView = ({
|
|
20
106
|
url,
|
|
21
107
|
id,
|
|
@@ -26,12 +112,14 @@ export const InlineCardUnauthorizedView = ({
|
|
|
26
112
|
testId = 'inline-card-unauthorized-view',
|
|
27
113
|
showHoverPreview = false,
|
|
28
114
|
truncateInline,
|
|
29
|
-
context
|
|
115
|
+
context,
|
|
116
|
+
extensionKey
|
|
30
117
|
}) => {
|
|
31
118
|
const frameRef = React.useRef(null);
|
|
32
119
|
const {
|
|
33
120
|
fireEvent
|
|
34
121
|
} = useAnalyticsEvents();
|
|
122
|
+
const isSocialProofInlineCtaEnabled = onAuthorise && fg('platform_sl_3p_preauth_soc_proof_inline_killswitch') && expValEquals('platform_sl_3p_preauth_social_proof_inline_cta', 'isEnabled', true);
|
|
35
123
|
const handleConnectAccount = React.useCallback(event => {
|
|
36
124
|
event.preventDefault();
|
|
37
125
|
event.stopPropagation();
|
|
@@ -63,7 +151,12 @@ export const InlineCardUnauthorizedView = ({
|
|
|
63
151
|
link: url,
|
|
64
152
|
onClick: onClick,
|
|
65
153
|
titleColor: "var(--ds-text-subtle, #505258)"
|
|
66
|
-
}), onAuthorise &&
|
|
154
|
+
}), onAuthorise && (isSocialProofInlineCtaEnabled ? /*#__PURE__*/React.createElement(UnauthorisedConnectWithSocialProof, {
|
|
155
|
+
context: context,
|
|
156
|
+
extensionKey: extensionKey,
|
|
157
|
+
testId: testId,
|
|
158
|
+
onConnectClick: handleConnectAccount
|
|
159
|
+
}) : renderActionButton()));
|
|
67
160
|
if (onAuthorise && showHoverPreview) {
|
|
68
161
|
return /*#__PURE__*/React.createElement(HoverCard, {
|
|
69
162
|
url: url,
|
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
|
|
2
|
-
.
|
|
3
|
-
._n7zlia51{border-bottom:var(--ds-border-width,1px) solid var(--ds-border,#0b120e24)}
|
|
4
|
-
._x3doia51{border-top:var(--ds-border-width,1px) solid var(--ds-border,#0b120e24)}._13liidpf{border-top-left-radius:0}
|
|
5
|
-
._13lilb4i{border-top-left-radius:var(--ds-radius-xsmall,2px)}
|
|
2
|
+
._2rko12b0{border-radius:var(--ds-radius-small,4px)}._13lilb4i{border-top-left-radius:var(--ds-radius-xsmall,2px)}
|
|
6
3
|
._16d9qvcn{-webkit-box-decoration-break:clone;box-decoration-break:clone}
|
|
7
4
|
._19bv12x7{padding-left:var(--ds-space-075,6px)}
|
|
8
5
|
._1e0c1bgi{display:contents}
|
|
9
6
|
._1e0c1nu9{display:inline}
|
|
10
7
|
._1nmz9jpi{word-break:break-all}
|
|
11
8
|
._1o0zlb4i{border-bottom-right-radius:var(--ds-radius-xsmall,2px)}
|
|
9
|
+
._1wybtjj4{font-size:.8em}
|
|
12
10
|
._1y1m1u8q{background-clip:padding-box}
|
|
13
11
|
._2hwxt94y{margin-right:1px}
|
|
14
12
|
._2hwxv77o{margin-right:var(--ds-space-025,2px)}
|
|
13
|
+
._4cvr1h6o{align-items:center}
|
|
15
14
|
._80om13gf{cursor:not-allowed}
|
|
16
15
|
._80omtlke{cursor:pointer}
|
|
17
16
|
._bfhkby5v{background-color:var(--ds-background-disabled,#17171708)}
|
|
@@ -21,19 +20,17 @@
|
|
|
21
20
|
._ca0qv77o{padding-top:var(--ds-space-025,2px)}
|
|
22
21
|
._k48p1wq8{font-weight:var(--ds-font-weight-medium,500)}
|
|
23
22
|
._k48pi7a9{font-weight:var(--ds-font-weight-regular,400)}
|
|
24
|
-
._mrkbidpf{border-bottom-left-radius:0}
|
|
25
23
|
._mrkblb4i{border-bottom-left-radius:var(--ds-radius-xsmall,2px)}
|
|
26
24
|
._n3tdt94y{padding-bottom:1px}
|
|
27
25
|
._n3tdv77o{padding-bottom:var(--ds-space-025,2px)}
|
|
28
26
|
._o5721btx{white-space:break-spaces}
|
|
29
|
-
._o5721q9c{white-space:nowrap}
|
|
30
27
|
._qrwqlb4i{border-top-right-radius:var(--ds-radius-xsmall,2px)}
|
|
28
|
+
._s7n4t94y{vertical-align:1px}
|
|
31
29
|
._syaz15cr{color:var(--ds-text-inverse,#fff)}
|
|
32
30
|
._syaz1gmx{color:var(--ds-text-disabled,#080f214a)}
|
|
33
31
|
._syazi7uo{color:var(--ds-text,#292a2e)}
|
|
34
32
|
._u5f312x7{padding-right:var(--ds-space-075,6px)}
|
|
35
33
|
._y3gn18uv{text-align:initial}
|
|
36
|
-
._4cvxq98m:hover{border-color:var(--ds-border-selected,#1868db)}
|
|
37
34
|
._irr31q28:hover{background-color:var(--ds-background-selected-bold-hovered,#1558bc)}
|
|
38
35
|
._irr3plhp:hover{background-color:var(--ds-background-neutral-hovered,#0b120e24)}
|
|
39
36
|
._1di612kk:active{background-color:var(--ds-background-selected-bold-pressed,#123263)}
|
|
@@ -4,15 +4,19 @@ import "./index.compiled.css";
|
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import { ax, ix } from "@compiled/react/runtime";
|
|
6
6
|
import { forwardRef } from 'react';
|
|
7
|
+
import { fg } from '@atlaskit/platform-feature-flags';
|
|
7
8
|
import { Pressable } from '@atlaskit/primitives/compiled';
|
|
8
9
|
const styles = {
|
|
9
10
|
button: "_1e0c1bgi",
|
|
10
11
|
innerContainer: "_1e0c1nu9 _1y1m1u8q _16d9qvcn _k48p1wq8 _19bv12x7 _ca0qv77o _n3tdv77o _u5f312x7 _y3gn18uv _o5721btx _1nmz9jpi",
|
|
12
|
+
innerContainerSocialProofConnect: "_2rko12b0 _syaz15cr _80omtlke _bfhkjmqp _2hwxv77o _1e0c1nu9 _4cvr1h6o _1wybtjj4 _1y1m1u8q _16d9qvcn _19bv12x7 _ca0qv77o _n3tdv77o _u5f312x7 _y3gn18uv _s7n4t94y _o5721btx _1nmz9jpi _irr31q28 _1di612kk",
|
|
11
13
|
enabled: "_syazi7uo _80omtlke _bfhki8nm _irr3plhp _1di61gdz",
|
|
12
14
|
disabled: "_syaz1gmx _80om13gf _bfhkby5v",
|
|
13
|
-
unauthorised: "_syaz15cr _80omtlke _bfhkjmqp _qrwqlb4i _1o0zlb4i _13lilb4i _mrkblb4i _ca0qt94y _n3tdt94y _2hwxt94y _k48pi7a9 _irr31q28 _1di612kk"
|
|
14
|
-
action: "_x3doia51 _1s7zia51 _n7zlia51 _syaz15cr _80omtlke _bfhkjmqp _qrwqlb4i _1o0zlb4i _13liidpf _mrkbidpf _2hwxv77o _k48pi7a9 _o5721q9c _4cvxq98m _irr31q28 _1di612kk"
|
|
15
|
+
unauthorised: "_syaz15cr _80omtlke _bfhkjmqp _qrwqlb4i _1o0zlb4i _13lilb4i _mrkblb4i _ca0qt94y _n3tdt94y _2hwxt94y _k48pi7a9 _irr31q28 _1di612kk"
|
|
15
16
|
};
|
|
17
|
+
|
|
18
|
+
/* eslint-enable @compiled/shorthand-property-sorting */
|
|
19
|
+
|
|
16
20
|
/**
|
|
17
21
|
* Action button has to be a span for the overflow to work correctly
|
|
18
22
|
*/
|
|
@@ -20,8 +24,21 @@ export const ActionButton = /*#__PURE__*/forwardRef(({
|
|
|
20
24
|
children,
|
|
21
25
|
isDisabled,
|
|
22
26
|
viewType = 'default',
|
|
27
|
+
isSocialProofInlineUnauthorisedConnect = false,
|
|
23
28
|
...props
|
|
24
29
|
}, ref) => {
|
|
30
|
+
const shouldUseSocialProofConnect = isSocialProofInlineUnauthorisedConnect && viewType === 'unauthorised' && fg('platform_sl_3p_preauth_soc_proof_inline_killswitch');
|
|
31
|
+
if (shouldUseSocialProofConnect && !isDisabled) {
|
|
32
|
+
return /*#__PURE__*/React.createElement(Pressable, _extends({}, props, {
|
|
33
|
+
ref: ref,
|
|
34
|
+
style: {
|
|
35
|
+
font: `inherit`
|
|
36
|
+
},
|
|
37
|
+
xcss: styles.button
|
|
38
|
+
}), /*#__PURE__*/React.createElement("span", {
|
|
39
|
+
className: ax([styles.innerContainerSocialProofConnect])
|
|
40
|
+
}, children));
|
|
41
|
+
}
|
|
25
42
|
return /*#__PURE__*/React.createElement(Pressable, _extends({}, props, {
|
|
26
43
|
isDisabled: isDisabled,
|
|
27
44
|
ref: ref
|
|
@@ -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: "44.5.
|
|
15
|
+
packageVersion: "44.5.4",
|
|
16
16
|
componentName: 'linkUrl'
|
|
17
17
|
};
|
|
18
18
|
const Anchor = withLinkClickedEvent('a');
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
version https://git-lfs.github.com/spec/v1
|
|
2
|
-
oid sha256:
|
|
3
|
-
size
|
|
2
|
+
oid sha256:e63d3c35774daccaacc495cc9a2503295cafb8af706ebd5af4f3f76947abe2a3
|
|
3
|
+
size 36763
|
package/dist/esm/messages.js
CHANGED
|
@@ -175,6 +175,26 @@ export var messages = defineMessages({
|
|
|
175
175
|
defaultMessage: 'Connect to {context}',
|
|
176
176
|
description: 'Shown on a button to connect user external account to their Atlassian account.'
|
|
177
177
|
},
|
|
178
|
+
connect_inline_social_proof: {
|
|
179
|
+
id: 'fabric.linking.connect_inline_social_proof',
|
|
180
|
+
defaultMessage: 'Connect',
|
|
181
|
+
description: 'Shown on a button for unauthorised inline smart links when the social proof inline CTA experiment is active. Replaces the longer "Connect your {context} account" label.'
|
|
182
|
+
},
|
|
183
|
+
social_proof_inline_cta_tag_high_with_context: {
|
|
184
|
+
id: 'fabric.linking.social_proof_inline_cta_tag_high_with_context',
|
|
185
|
+
defaultMessage: '<b>{connectedPct}%</b> of your team previews {context}',
|
|
186
|
+
description: 'Social-proof tag pill beside the shortcut "Connect" on an unauthorised inline smart link when adoption is not in the exploratory range. {connectedPct} is the approximate share previewing/using the integration; {context} is the provider display name.'
|
|
187
|
+
},
|
|
188
|
+
social_proof_inline_cta_tag_high_no_context: {
|
|
189
|
+
id: 'fabric.linking.social_proof_inline_cta_tag_high_no_context',
|
|
190
|
+
defaultMessage: '<b>{connectedPct}%</b> of your team previews this',
|
|
191
|
+
description: 'Social-proof tag pill when adoption is above the exploratory threshold and no provider display name is available; {connectedPct} is the approximate share previewing the integration.'
|
|
192
|
+
},
|
|
193
|
+
social_proof_inline_cta_tag_low_with_context: {
|
|
194
|
+
id: 'fabric.linking.social_proof_inline_cta_tag_low_with_context',
|
|
195
|
+
defaultMessage: 'Your team is previewing {context}',
|
|
196
|
+
description: 'Social-proof tag pill when share is below the percentage headline threshold; shown only when a provider display name is available. Omit the pill entirely when personalization is unavailable or the provider name is unknown.'
|
|
197
|
+
},
|
|
178
198
|
connect_unauthorised_account_description: {
|
|
179
199
|
id: 'fabric.linking.connect_unauthorised_account_description',
|
|
180
200
|
defaultMessage: 'Connect your {context} account to collaborate on work across Atlassian products.',
|
|
@@ -2,6 +2,8 @@ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
|
2
2
|
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
3
3
|
import { useCallback, useMemo } from 'react';
|
|
4
4
|
import { request } from '@atlaskit/linking-common';
|
|
5
|
+
import { fg } from '@atlaskit/platform-feature-flags';
|
|
6
|
+
import { getCurrentSiteCloudId } from '../use-current-site-cloud-id';
|
|
5
7
|
import { queryIncomingOutgoingLinks as queryIncomingOutgoingAris } from './query';
|
|
6
8
|
/**
|
|
7
9
|
* @param baseUriWithNoTrailingSlash base url which will then be appended with /gateway/api/graphql to make requests to AGG
|
|
@@ -70,11 +72,24 @@ var useIncomingOutgoingAri = function useIncomingOutgoingAri() {
|
|
|
70
72
|
}
|
|
71
73
|
return _context3.abrupt("return", match[2]);
|
|
72
74
|
case 4:
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
75
|
+
if (!fg('platform_sl_3p_preauth_soc_proof_inline_killswitch')) {
|
|
76
|
+
_context3.next = 10;
|
|
77
|
+
break;
|
|
78
|
+
}
|
|
79
|
+
_context3.next = 7;
|
|
80
|
+
return getCurrentSiteCloudId(baseUriWithNoTrailingSlash);
|
|
77
81
|
case 7:
|
|
82
|
+
_context3.t0 = _context3.sent;
|
|
83
|
+
_context3.next = 13;
|
|
84
|
+
break;
|
|
85
|
+
case 10:
|
|
86
|
+
_context3.next = 12;
|
|
87
|
+
return getCurrentSiteId();
|
|
88
|
+
case 12:
|
|
89
|
+
_context3.t0 = _context3.sent;
|
|
90
|
+
case 13:
|
|
91
|
+
return _context3.abrupt("return", _context3.t0);
|
|
92
|
+
case 14:
|
|
78
93
|
case "end":
|
|
79
94
|
return _context3.stop();
|
|
80
95
|
}
|
|
@@ -83,7 +98,7 @@ var useIncomingOutgoingAri = function useIncomingOutgoingAri() {
|
|
|
83
98
|
return function (_x3) {
|
|
84
99
|
return _ref3.apply(this, arguments);
|
|
85
100
|
};
|
|
86
|
-
}(), [getCurrentSiteId]);
|
|
101
|
+
}(), [getCurrentSiteId, baseUriWithNoTrailingSlash]);
|
|
87
102
|
var getIncomingOutgoingAris = useCallback(
|
|
88
103
|
/*#__PURE__*/
|
|
89
104
|
/**
|
|
@@ -35,7 +35,7 @@ var useInlineActionNudgeExperiment = function useInlineActionNudgeExperiment(url
|
|
|
35
35
|
if (!isRovoChatEnabled || !showHoverPreview || !url || !isRovoChatActionOptedIn) {
|
|
36
36
|
return NOT_ENABLED_RESULT;
|
|
37
37
|
}
|
|
38
|
-
if (extensionKey
|
|
38
|
+
if (!extensionKey || !ELIGIBLE_EXTENSION_KEYS.has(extensionKey)) {
|
|
39
39
|
return NOT_ENABLED_RESULT;
|
|
40
40
|
}
|
|
41
41
|
var isEnabled = expValEquals('rovogrowth-640-inline-action-nudge-exp', 'isEnabled', true);
|
|
@@ -143,11 +143,12 @@ export var CurrentSiteCloudIdService = /*#__PURE__*/function () {
|
|
|
143
143
|
return _get.apply(this, arguments);
|
|
144
144
|
}
|
|
145
145
|
return get;
|
|
146
|
-
}() /** Clears
|
|
146
|
+
}() /** Clears session pin and persisted storage so the next {@link get} is a fresh tenant_info fetch. */)
|
|
147
147
|
}, {
|
|
148
148
|
key: "clearCache",
|
|
149
149
|
value: function clearCache() {
|
|
150
150
|
this.tenantInfoInflightPromise = null;
|
|
151
|
+
smartCardStorage.removeItem(CURRENT_SITE_CLOUD_ID_STORAGE_ITEM_KEY);
|
|
151
152
|
}
|
|
152
153
|
}]);
|
|
153
154
|
}();
|
|
@@ -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: "44.5.
|
|
7
|
+
packageVersion: "44.5.4" || ''
|
|
8
8
|
};
|
|
9
9
|
export var TrackQuickActionType = /*#__PURE__*/function (TrackQuickActionType) {
|
|
10
10
|
TrackQuickActionType["StatusUpdate"] = "StatusUpdate";
|
package/dist/esm/view/FlexibleCard/components/actions/action/action-stack-item/action-button.js
CHANGED
|
@@ -74,7 +74,7 @@ var ActionButton = function ActionButton(_ref) {
|
|
|
74
74
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop
|
|
75
75
|
,
|
|
76
76
|
style: style
|
|
77
|
-
}, fg('platform_sl_3p_auth_rovo_action_kill_switch') ? {
|
|
77
|
+
}, fg('platform_sl_3p_auth_rovo_action_kill_switch') || expValEqualsNoExposure('rovogrowth-640-inline-action-nudge-exp', 'isEnabled', true) ? {
|
|
78
78
|
'aria-label': ariaLabel
|
|
79
79
|
} : {}), /*#__PURE__*/React.createElement(Inline, {
|
|
80
80
|
alignBlock: "center",
|