@atlaskit/smart-card 44.0.6 → 44.1.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 +12 -0
- package/dist/cjs/__tests__/vr-tests/__snapshots__/hover-card/hover-card-with-generic-3p-rovo-chat-action--default.png +0 -0
- package/dist/cjs/extractors/flexible/actions/extract-rovo-chat-action.js +7 -5
- package/dist/cjs/extractors/flexible/actions/index.js +1 -1
- package/dist/cjs/extractors/flexible/index.js +1 -1
- package/dist/cjs/messages.js +25 -0
- package/dist/cjs/state/hooks/use-inline-action-nudge-experiment/index.js +2 -2
- package/dist/cjs/view/FlexibleCard/components/actions/action/action-stack-item/action-button.js +6 -1
- package/dist/cjs/view/FlexibleCard/components/actions/rovo-chat-action/index.js +80 -6
- package/dist/cjs/view/FlexibleCard/components/blocks/action-block/index.js +3 -3
- package/dist/cjs/view/FlexibleCard/components/blocks/ai-summary-block/index.js +3 -3
- package/dist/cjs/view/FlexibleCard/index.js +2 -2
- package/dist/cjs/view/HoverCard/components/HoverCardContent.js +5 -4
- package/dist/cjs/view/HoverCard/components/views/resolved/index.js +8 -3
- package/dist/cjs/view/common/ai-summary/index.js +6 -1
- package/dist/es2019/__tests__/vr-tests/__snapshots__/hover-card/hover-card-with-generic-3p-rovo-chat-action--default.png +0 -0
- package/dist/es2019/extractors/flexible/actions/extract-rovo-chat-action.js +7 -5
- package/dist/es2019/extractors/flexible/actions/index.js +1 -1
- package/dist/es2019/extractors/flexible/index.js +1 -1
- package/dist/es2019/messages.js +25 -0
- package/dist/es2019/state/hooks/use-inline-action-nudge-experiment/index.js +2 -2
- package/dist/es2019/view/FlexibleCard/components/actions/action/action-stack-item/action-button.js +6 -1
- package/dist/es2019/view/FlexibleCard/components/actions/rovo-chat-action/index.js +80 -5
- package/dist/es2019/view/FlexibleCard/components/blocks/action-block/index.js +3 -3
- package/dist/es2019/view/FlexibleCard/components/blocks/ai-summary-block/index.js +2 -2
- package/dist/es2019/view/FlexibleCard/index.js +2 -2
- package/dist/es2019/view/HoverCard/components/HoverCardContent.js +5 -4
- package/dist/es2019/view/HoverCard/components/views/resolved/index.js +9 -3
- package/dist/es2019/view/common/ai-summary/index.js +6 -1
- package/dist/esm/__tests__/vr-tests/__snapshots__/hover-card/hover-card-with-generic-3p-rovo-chat-action--default.png +0 -0
- package/dist/esm/extractors/flexible/actions/extract-rovo-chat-action.js +7 -5
- package/dist/esm/extractors/flexible/actions/index.js +1 -1
- package/dist/esm/extractors/flexible/index.js +1 -1
- package/dist/esm/messages.js +25 -0
- package/dist/esm/state/hooks/use-inline-action-nudge-experiment/index.js +2 -2
- package/dist/esm/view/FlexibleCard/components/actions/action/action-stack-item/action-button.js +6 -1
- package/dist/esm/view/FlexibleCard/components/actions/rovo-chat-action/index.js +80 -6
- package/dist/esm/view/FlexibleCard/components/blocks/action-block/index.js +3 -3
- package/dist/esm/view/FlexibleCard/components/blocks/ai-summary-block/index.js +3 -3
- package/dist/esm/view/FlexibleCard/index.js +2 -2
- package/dist/esm/view/HoverCard/components/HoverCardContent.js +5 -4
- package/dist/esm/view/HoverCard/components/views/resolved/index.js +8 -3
- package/dist/esm/view/common/ai-summary/index.js +6 -1
- package/dist/types/messages.d.ts +1 -1
- package/dist/types/state/hooks/use-inline-action-nudge-experiment/index.d.ts +1 -1
- package/dist/types/view/FlexibleCard/components/actions/rovo-chat-action/index.d.ts +4 -1
- package/dist/types/view/FlexibleCard/components/blocks/action-block/index.d.ts +1 -1
- package/dist/types/view/FlexibleCard/components/blocks/action-block/types.d.ts +2 -2
- package/dist/types/view/FlexibleCard/components/blocks/ai-summary-block/index.d.ts +1 -1
- package/dist/types/view/FlexibleCard/components/blocks/ai-summary-block/types.d.ts +2 -2
- package/dist/types-ts4.5/messages.d.ts +1 -1
- package/dist/types-ts4.5/state/hooks/use-inline-action-nudge-experiment/index.d.ts +1 -1
- package/dist/types-ts4.5/view/FlexibleCard/components/actions/rovo-chat-action/index.d.ts +4 -1
- package/dist/types-ts4.5/view/FlexibleCard/components/blocks/action-block/index.d.ts +1 -1
- package/dist/types-ts4.5/view/FlexibleCard/components/blocks/action-block/types.d.ts +2 -2
- package/dist/types-ts4.5/view/FlexibleCard/components/blocks/ai-summary-block/index.d.ts +1 -1
- package/dist/types-ts4.5/view/FlexibleCard/components/blocks/ai-summary-block/types.d.ts +2 -2
- package/package.json +9 -9
- /package/dist/cjs/__tests__/vr-tests/__snapshots__/hover-card/{hover-card-rovo-chat-action--default.png → hover-card-with-google-rovo-chat-action--default.png} +0 -0
- /package/dist/es2019/__tests__/vr-tests/__snapshots__/hover-card/{hover-card-rovo-chat-action--default.png → hover-card-with-google-rovo-chat-action--default.png} +0 -0
- /package/dist/esm/__tests__/vr-tests/__snapshots__/hover-card/{hover-card-rovo-chat-action--default.png → hover-card-with-google-rovo-chat-action--default.png} +0 -0
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
|
2
2
|
import React, { useCallback, useMemo } from 'react';
|
|
3
3
|
import { useIntl } from 'react-intl';
|
|
4
|
+
import { expValEqualsNoExposure } from '@atlaskit/tmp-editor-statsig/exp-val-equals-no-exposure';
|
|
4
5
|
import { InternalActionName } from '../../../../../constants';
|
|
5
6
|
import { messages } from '../../../../../messages';
|
|
6
7
|
import { useFlexibleUiContext } from '../../../../../state/flexible-ui-context';
|
|
@@ -15,9 +16,16 @@ export let RovoChatPromptKey = /*#__PURE__*/function (RovoChatPromptKey) {
|
|
|
15
16
|
RovoChatPromptKey["RECOMMEND_OTHER_SOURCES"] = "recommend-other-sources";
|
|
16
17
|
RovoChatPromptKey["SHOW_OTHER_MENTIONS"] = "show-other-mentions";
|
|
17
18
|
RovoChatPromptKey["SUGGEST_IMPROVEMENT"] = "suggest-improvement";
|
|
19
|
+
RovoChatPromptKey["SUMMARIZE_LINK"] = "summarize-link";
|
|
20
|
+
RovoChatPromptKey["KEY_HIGHLIGHTS"] = "key-highlights";
|
|
21
|
+
RovoChatPromptKey["ASK_ROVO_ANYTHING"] = "ask-rovo-anything";
|
|
18
22
|
return RovoChatPromptKey;
|
|
19
23
|
}({});
|
|
20
|
-
const
|
|
24
|
+
const GOOGLE_PROMPTS = [RovoChatPromptKey.RECOMMEND_OTHER_SOURCES, RovoChatPromptKey.SHOW_OTHER_MENTIONS, RovoChatPromptKey.SUGGEST_IMPROVEMENT];
|
|
25
|
+
const GENERIC_3P_PROMPTS = [
|
|
26
|
+
// For rovogrowth-640-inline-action-nudge-exp only. Applies to all RovoActions eligible providers, except Google
|
|
27
|
+
RovoChatPromptKey.SUMMARIZE_LINK, RovoChatPromptKey.KEY_HIGHLIGHTS, RovoChatPromptKey.ASK_ROVO_ANYTHING];
|
|
28
|
+
const DEFAULT_PROMPTS = GOOGLE_PROMPTS;
|
|
21
29
|
const getContext = (intl, product) => {
|
|
22
30
|
switch (product) {
|
|
23
31
|
case 'CONFLUENCE':
|
|
@@ -101,15 +109,72 @@ const getPromptAction = (promptKey, intl, url = '', product) => {
|
|
|
101
109
|
prompt: htmlToAdf(html_improvement)
|
|
102
110
|
}
|
|
103
111
|
};
|
|
112
|
+
case RovoChatPromptKey.SUMMARIZE_LINK:
|
|
113
|
+
const label_summarize = intl.formatMessage(messages.ai_summarize);
|
|
114
|
+
const html_summarize = intl.formatMessage(messages.rovo_prompt_message_summarize, {
|
|
115
|
+
url
|
|
116
|
+
}, {
|
|
117
|
+
ignoreTag: true
|
|
118
|
+
});
|
|
119
|
+
return {
|
|
120
|
+
icon: /*#__PURE__*/React.createElement(AIEditIcon, null),
|
|
121
|
+
content: label_summarize,
|
|
122
|
+
tooltipMessage: label_summarize,
|
|
123
|
+
data: {
|
|
124
|
+
name: label_summarize,
|
|
125
|
+
dialogues: [],
|
|
126
|
+
prompt: htmlToAdf(html_summarize),
|
|
127
|
+
mode: {
|
|
128
|
+
fastModeEnabled: true
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
};
|
|
132
|
+
case RovoChatPromptKey.KEY_HIGHLIGHTS:
|
|
133
|
+
const label_key_highlights = intl.formatMessage(messages.rovo_prompt_button_key_highlights);
|
|
134
|
+
const html_key_highlights = intl.formatMessage(messages.rovo_prompt_message_key_highlights, {
|
|
135
|
+
url
|
|
136
|
+
}, {
|
|
137
|
+
ignoreTag: true
|
|
138
|
+
});
|
|
139
|
+
return {
|
|
140
|
+
icon: /*#__PURE__*/React.createElement(AiChapterIcon, null),
|
|
141
|
+
content: label_key_highlights,
|
|
142
|
+
tooltipMessage: label_key_highlights,
|
|
143
|
+
data: {
|
|
144
|
+
name: label_key_highlights,
|
|
145
|
+
dialogues: [],
|
|
146
|
+
prompt: htmlToAdf(html_key_highlights),
|
|
147
|
+
mode: {
|
|
148
|
+
fastModeEnabled: true
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
};
|
|
152
|
+
case RovoChatPromptKey.ASK_ROVO_ANYTHING:
|
|
153
|
+
const label_ask_rovo_anything = intl.formatMessage(messages.rovo_prompt_button_ask_rovo_anything);
|
|
154
|
+
const prompt_ask_rovo_anything = intl.formatMessage(messages.rovo_prompt_message_ask_rovo_anything, {
|
|
155
|
+
url
|
|
156
|
+
});
|
|
157
|
+
return {
|
|
158
|
+
icon: /*#__PURE__*/React.createElement(AISearchIcon, null),
|
|
159
|
+
content: label_ask_rovo_anything,
|
|
160
|
+
tooltipMessage: label_ask_rovo_anything,
|
|
161
|
+
data: {
|
|
162
|
+
name: label_ask_rovo_anything,
|
|
163
|
+
dialogues: [],
|
|
164
|
+
prompt: prompt_ask_rovo_anything,
|
|
165
|
+
isPromptPlaceholder: true,
|
|
166
|
+
placeholderType: 'generic'
|
|
167
|
+
}
|
|
168
|
+
};
|
|
104
169
|
}
|
|
105
170
|
};
|
|
106
171
|
const RovoChatAction = ({
|
|
107
172
|
onClick: onClickCallback,
|
|
108
|
-
prompts
|
|
173
|
+
prompts,
|
|
109
174
|
testId = 'smart-action-rovo-chat-action',
|
|
110
175
|
...props
|
|
111
176
|
}) => {
|
|
112
|
-
var _context$actions;
|
|
177
|
+
var _context$actions, _data$invokeAction2;
|
|
113
178
|
const intl = useIntl();
|
|
114
179
|
const {
|
|
115
180
|
isRovoChatEnabled,
|
|
@@ -117,6 +182,16 @@ const RovoChatAction = ({
|
|
|
117
182
|
} = useRovoChat();
|
|
118
183
|
const context = useFlexibleUiContext();
|
|
119
184
|
const data = context === null || context === void 0 ? void 0 : (_context$actions = context.actions) === null || _context$actions === void 0 ? void 0 : _context$actions[InternalActionName.RovoChatAction];
|
|
185
|
+
const resolvedPrompts = useMemo(() => {
|
|
186
|
+
var _data$invokeAction;
|
|
187
|
+
if (prompts) {
|
|
188
|
+
return prompts;
|
|
189
|
+
}
|
|
190
|
+
if (expValEqualsNoExposure('rovogrowth-640-inline-action-nudge-exp', 'isEnabled', true) && (data === null || data === void 0 ? void 0 : (_data$invokeAction = data.invokeAction) === null || _data$invokeAction === void 0 ? void 0 : _data$invokeAction.extensionKey) !== 'google-object-provider') {
|
|
191
|
+
return GENERIC_3P_PROMPTS;
|
|
192
|
+
}
|
|
193
|
+
return DEFAULT_PROMPTS;
|
|
194
|
+
}, [prompts, data === null || data === void 0 ? void 0 : (_data$invokeAction2 = data.invokeAction) === null || _data$invokeAction2 === void 0 ? void 0 : _data$invokeAction2.extensionKey]);
|
|
120
195
|
const invoke = useInvokeClientAction({});
|
|
121
196
|
const onClick = useCallback((promptData, promptKey) => {
|
|
122
197
|
if (promptData && data !== null && data !== void 0 && data.invokeAction) {
|
|
@@ -129,7 +204,7 @@ const RovoChatAction = ({
|
|
|
129
204
|
}
|
|
130
205
|
}, [data === null || data === void 0 ? void 0 : data.invokeAction, invoke, onClickCallback, sendPromptMessage]);
|
|
131
206
|
const promptActions = useMemo(() => {
|
|
132
|
-
return
|
|
207
|
+
return resolvedPrompts.map((promptKey, idx) => {
|
|
133
208
|
const {
|
|
134
209
|
icon,
|
|
135
210
|
content,
|
|
@@ -145,7 +220,7 @@ const RovoChatAction = ({
|
|
|
145
220
|
tooltipMessage: tooltipMessage
|
|
146
221
|
}, props)) : null;
|
|
147
222
|
});
|
|
148
|
-
}, [data, intl, onClick,
|
|
223
|
+
}, [data, intl, onClick, resolvedPrompts, props, testId]);
|
|
149
224
|
return isRovoChatEnabled && data && (promptActions === null || promptActions === void 0 ? void 0 : promptActions.length) > 0 ? /*#__PURE__*/React.createElement(React.Fragment, null, promptActions) : null;
|
|
150
225
|
};
|
|
151
226
|
export default RovoChatAction;
|
|
@@ -47,12 +47,12 @@ const ActionBlock = ({
|
|
|
47
47
|
spaceInline,
|
|
48
48
|
className,
|
|
49
49
|
testId = 'smart-block-action',
|
|
50
|
-
|
|
50
|
+
isAny3pRovoActionsExperimentOn
|
|
51
51
|
}) => {
|
|
52
52
|
var _context$actions;
|
|
53
53
|
const context = useFlexibleUiContext();
|
|
54
54
|
const ui = useFlexibleUiOptionContext();
|
|
55
|
-
const isRovoChatActionAvailable =
|
|
55
|
+
const isRovoChatActionAvailable = (fg('platform_sl_3p_auth_rovo_action_kill_switch') || fg('rovogrowth-640-inline-action-nudge-fg')) && isAny3pRovoActionsExperimentOn ? (context === null || context === void 0 ? void 0 : (_context$actions = context.actions) === null || _context$actions === void 0 ? void 0 : _context$actions[InternalActionName.RovoChatAction]) !== undefined : undefined;
|
|
56
56
|
const [message, setMessage] = useState();
|
|
57
57
|
const [isLoading, setIsLoading] = useState(false);
|
|
58
58
|
const onLoadingChange = useCallback(isLoading => {
|
|
@@ -70,7 +70,7 @@ const ActionBlock = ({
|
|
|
70
70
|
if (!(context !== null && context !== void 0 && context.actions)) {
|
|
71
71
|
return;
|
|
72
72
|
}
|
|
73
|
-
const arr = fg('platform_sl_3p_auth_rovo_action_kill_switch') ? isRovoChatActionAvailable ? [InternalActionName.RovoChatAction] : Object.keys(context.actions).filter(name => name !== InternalActionName.RovoChatAction) : Object.keys(context.actions);
|
|
73
|
+
const arr = fg('platform_sl_3p_auth_rovo_action_kill_switch') || fg('rovogrowth-640-inline-action-nudge-fg') ? isRovoChatActionAvailable ? [InternalActionName.RovoChatAction] : Object.keys(context.actions).filter(name => name !== InternalActionName.RovoChatAction) : Object.keys(context.actions);
|
|
74
74
|
arr.sort(sort);
|
|
75
75
|
const renderAction = name => {
|
|
76
76
|
const Action = name in Actions ? Actions[name] : undefined;
|
|
@@ -11,7 +11,7 @@ import AISummaryBlockResolvedView, { RovoSummaryBlockResolvedView } from './reso
|
|
|
11
11
|
* @see Block
|
|
12
12
|
*/
|
|
13
13
|
const AISummaryBlock = ({
|
|
14
|
-
|
|
14
|
+
isAny3pRovoActionsExperimentOn,
|
|
15
15
|
testId = 'smart-ai-summary-block',
|
|
16
16
|
...props
|
|
17
17
|
}) => {
|
|
@@ -25,7 +25,7 @@ const AISummaryBlock = ({
|
|
|
25
25
|
if (!(actionData !== null && actionData !== void 0 && actionData.url)) {
|
|
26
26
|
return null;
|
|
27
27
|
}
|
|
28
|
-
if (
|
|
28
|
+
if (isAny3pRovoActionsExperimentOn) {
|
|
29
29
|
var _props$size, _cardContext$ui;
|
|
30
30
|
return /*#__PURE__*/React.createElement(RovoSummaryBlockResolvedView, _extends({}, props, {
|
|
31
31
|
size: (_props$size = props.size) !== null && _props$size !== void 0 ? _props$size : cardContext === null || cardContext === void 0 ? void 0 : (_cardContext$ui = cardContext.ui) === null || _cardContext$ui === void 0 ? void 0 : _cardContext$ui.size,
|
|
@@ -47,7 +47,7 @@ const FlexibleCard = ({
|
|
|
47
47
|
openPreviewPanel,
|
|
48
48
|
product
|
|
49
49
|
} = useSmartLinkContext();
|
|
50
|
-
const rovoConfig = fg('platform_sl_3p_auth_rovo_action_kill_switch') ?
|
|
50
|
+
const rovoConfig = fg('platform_sl_3p_auth_rovo_action_kill_switch') || fg('rovogrowth-640-inline-action-nudge-fg') ?
|
|
51
51
|
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
52
52
|
useRovoConfig() : undefined;
|
|
53
53
|
const {
|
|
@@ -74,7 +74,7 @@ const FlexibleCard = ({
|
|
|
74
74
|
origin,
|
|
75
75
|
renderers,
|
|
76
76
|
resolve,
|
|
77
|
-
...(fg('platform_sl_3p_auth_rovo_action_kill_switch') ? {
|
|
77
|
+
...(fg('platform_sl_3p_auth_rovo_action_kill_switch') || fg('rovogrowth-640-inline-action-nudge-fg') ? {
|
|
78
78
|
product,
|
|
79
79
|
rovoConfig
|
|
80
80
|
} : undefined),
|
|
@@ -222,7 +222,7 @@ const HoverCardContent = ({
|
|
|
222
222
|
});
|
|
223
223
|
}
|
|
224
224
|
if (isResolved) {
|
|
225
|
-
return /*#__PURE__*/React.createElement(HoverCardResolvedView, _extends({}, fg('platform_sl_3p_auth_rovo_action_kill_switch') ? {
|
|
225
|
+
return /*#__PURE__*/React.createElement(HoverCardResolvedView, _extends({}, fg('platform_sl_3p_auth_rovo_action_kill_switch') || fg('rovogrowth-640-inline-action-nudge-fg') ? {
|
|
226
226
|
actionOptions,
|
|
227
227
|
showRovoResolvedView
|
|
228
228
|
} : undefined, {
|
|
@@ -274,7 +274,7 @@ const HoverCardContent = ({
|
|
|
274
274
|
});
|
|
275
275
|
}
|
|
276
276
|
if (cardState.status === 'resolved') {
|
|
277
|
-
return /*#__PURE__*/React.createElement(HoverCardResolvedView, _extends({}, fg('platform_sl_3p_auth_rovo_action_kill_switch') ? {
|
|
277
|
+
return /*#__PURE__*/React.createElement(HoverCardResolvedView, _extends({}, fg('platform_sl_3p_auth_rovo_action_kill_switch') || fg('rovogrowth-640-inline-action-nudge-fg') ? {
|
|
278
278
|
actionOptions,
|
|
279
279
|
showRovoResolvedView
|
|
280
280
|
} : undefined, {
|
|
@@ -313,7 +313,7 @@ const HoverCardContentWithViewVariant = props => {
|
|
|
313
313
|
}) !== undefined, [actionOptions, cardState.details, rovoConfig, isResolved]);
|
|
314
314
|
const data = useMemo(() => {
|
|
315
315
|
let viewVariant = 'default';
|
|
316
|
-
if (showRovoResolvedView && expValEqualsNoExposure('platform_sl_3p_auth_rovo_action', 'isEnabled', true)) {
|
|
316
|
+
if (showRovoResolvedView && (expValEqualsNoExposure('platform_sl_3p_auth_rovo_action', 'isEnabled', true) || expValEqualsNoExposure('rovogrowth-640-inline-action-nudge-exp', 'isEnabled', true))) {
|
|
317
317
|
viewVariant = 'rovo-resolved-view';
|
|
318
318
|
} else if (showPreauthBetterHovercard) {
|
|
319
319
|
viewVariant = 'rovo-unauthorised-view';
|
|
@@ -334,5 +334,6 @@ export default componentWithCondition(() => {
|
|
|
334
334
|
// We need to read both of them to sutisfy some of the tests that expect both to be checked.
|
|
335
335
|
const flagA = fg('platform_sl_3p_preauth_better_hovercard_killswitch');
|
|
336
336
|
const flagB = fg('platform_sl_3p_auth_rovo_action_kill_switch');
|
|
337
|
-
|
|
337
|
+
const flagC = fg('rovogrowth-640-inline-action-nudge-fg');
|
|
338
|
+
return flagA || flagB || flagC;
|
|
338
339
|
}, HoverCardContentWithViewVariant, HoverCardContent);
|
|
@@ -9,6 +9,7 @@ import { useAnalyticsEvents } from '../../../../../common/analytics/generated/us
|
|
|
9
9
|
import { CardDisplay, SmartLinkPosition, SmartLinkSize } from '../../../../../constants';
|
|
10
10
|
import { succeedUfoExperience } from '../../../../../state/analytics';
|
|
11
11
|
import useAISummaryAction from '../../../../../state/hooks/use-ai-summary-action';
|
|
12
|
+
import useInlineActionNudgeExperiment from '../../../../../state/hooks/use-inline-action-nudge-experiment';
|
|
12
13
|
import FlexibleCard from '../../../../FlexibleCard';
|
|
13
14
|
import { ActionBlock, AIFooterBlock, AISummaryBlock, ResolvedHoverCardFooterBlock, MetadataBlock, SnippetBlock, TitleBlock } from '../../../../FlexibleCard/components/blocks';
|
|
14
15
|
import { getMetadata } from '../../../utils';
|
|
@@ -31,10 +32,15 @@ const HoverCardResolvedView = ({
|
|
|
31
32
|
const {
|
|
32
33
|
fireEvent
|
|
33
34
|
} = useAnalyticsEvents();
|
|
35
|
+
const {
|
|
36
|
+
isEnabled: InlineActionNudgeExperimentValue
|
|
37
|
+
} = useInlineActionNudgeExperiment();
|
|
34
38
|
|
|
35
39
|
// We want to fire exposure event only for those cases when user otherwise can see the experiment which would be controlled
|
|
36
40
|
// by all the other condition defined above as a result of what was defined in actionOptions as well as in CardContext.
|
|
37
41
|
const is3PAuthRovoActionsExperimentOn = showRovoResolvedView && expValEquals('platform_sl_3p_auth_rovo_action', 'isEnabled', true);
|
|
42
|
+
const is3PInlinePostAuthActionsExperimentOn = showRovoResolvedView && InlineActionNudgeExperimentValue;
|
|
43
|
+
const isAny3pRovoActionsExperimentOn = is3PAuthRovoActionsExperimentOn || is3PInlinePostAuthActionsExperimentOn;
|
|
38
44
|
useEffect(() => {
|
|
39
45
|
// Since this hover view is only rendered on resolved status,
|
|
40
46
|
// there is no need to check for statuses.
|
|
@@ -83,7 +89,7 @@ const HoverCardResolvedView = ({
|
|
|
83
89
|
}), isAISummaryEnabled ? /*#__PURE__*/React.createElement(AISummaryBlock, {
|
|
84
90
|
aiSummaryMinHeight: aiSummaryMinHeight,
|
|
85
91
|
placeholder: snippet,
|
|
86
|
-
|
|
92
|
+
isAny3pRovoActionsExperimentOn: isAny3pRovoActionsExperimentOn
|
|
87
93
|
}) : snippet, /*#__PURE__*/React.createElement(SnippetBlock, {
|
|
88
94
|
testId: "hidden-snippet",
|
|
89
95
|
onRender: onSnippetRender,
|
|
@@ -93,9 +99,9 @@ const HoverCardResolvedView = ({
|
|
|
93
99
|
}), /*#__PURE__*/React.createElement(ActionBlock, {
|
|
94
100
|
onClick: onActionClick,
|
|
95
101
|
spaceInline: "space.100",
|
|
96
|
-
|
|
102
|
+
isAny3pRovoActionsExperimentOn: isAny3pRovoActionsExperimentOn,
|
|
97
103
|
className: ax(["_n3td1b66"])
|
|
98
|
-
}),
|
|
104
|
+
}), isAny3pRovoActionsExperimentOn ? /*#__PURE__*/React.createElement(ResolvedHoverCardFooterBlock, {
|
|
99
105
|
onActionClick: onActionClick
|
|
100
106
|
}) : /*#__PURE__*/React.createElement(AIFooterBlock, null));
|
|
101
107
|
};
|
|
@@ -24,11 +24,16 @@ const AISummary = ({
|
|
|
24
24
|
if (!content && minHeight === 0) {
|
|
25
25
|
return null;
|
|
26
26
|
}
|
|
27
|
+
const is3pExperimentEnabled =
|
|
28
|
+
// eslint-disable-next-line @atlaskit/platform/no-preconditioning
|
|
29
|
+
fg('platform_sl_3p_auth_rovo_action_kill_switch') && expValEqualsNoExposure('platform_sl_3p_auth_rovo_action', 'isEnabled', true) ||
|
|
30
|
+
// eslint-disable-next-line @atlaskit/platform/no-preconditioning
|
|
31
|
+
fg('rovogrowth-640-inline-action-nudge-fg') && expValEqualsNoExposure('rovogrowth-640-inline-action-nudge-exp', 'isEnabled', true);
|
|
27
32
|
return /*#__PURE__*/React.createElement(Markdown, {
|
|
28
33
|
"data-testid": testId
|
|
29
34
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop
|
|
30
35
|
,
|
|
31
|
-
className: ax(["_11c8wadc _slp31hna _1nmz1hna _o5724jg8 _181u1kdv _1rkw1kdv _te171kdv _uizt1kdv",
|
|
36
|
+
className: ax(["_11c8wadc _slp31hna _1nmz1hna _o5724jg8 _181u1kdv _1rkw1kdv _te171kdv _uizt1kdv", is3pExperimentEnabled ? "_syazi7uo" : "_syazazsu", className]),
|
|
32
37
|
children: content,
|
|
33
38
|
options: {
|
|
34
39
|
forceWrapper: true,
|
|
Binary file
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { extractSmartLinkUrl } from '@atlaskit/link-extractors';
|
|
2
|
+
import { fg } from '@atlaskit/platform-feature-flags';
|
|
2
3
|
import { InternalActionName } from '../../../constants';
|
|
3
4
|
import { getDefinitionId, getExtensionKey, getResourceType } from '../../../state/helpers';
|
|
4
5
|
import { canShowAction } from '../../../utils/actions/can-show-action';
|
|
5
6
|
import { getIsRovoChatEnabled } from '../../../utils/rovo';
|
|
6
7
|
import { CardAction } from '../../../view/Card/types';
|
|
7
8
|
var extractRovoChatAction = function extractRovoChatAction(_ref) {
|
|
8
|
-
var _actionOptions$rovoCh;
|
|
9
|
+
var _response$meta, _actionOptions$rovoCh;
|
|
9
10
|
var actionOptions = _ref.actionOptions,
|
|
10
11
|
appearance = _ref.appearance,
|
|
11
12
|
id = _ref.id,
|
|
@@ -19,10 +20,11 @@ var extractRovoChatAction = function extractRovoChatAction(_ref) {
|
|
|
19
20
|
if (!isRovoChatEnabled) {
|
|
20
21
|
return;
|
|
21
22
|
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
var
|
|
23
|
+
var supportsRovoActions = response === null || response === void 0 || (_response$meta = response.meta) === null || _response$meta === void 0 || (_response$meta = _response$meta.supportedFeature) === null || _response$meta === void 0 ? void 0 : _response$meta.includes('RovoActions');
|
|
24
|
+
var isGoogleProvider = getExtensionKey(response) === 'google-object-provider';
|
|
25
|
+
var is3PAuthRovoActionEnabled = isGoogleProvider && fg('platform_sl_3p_auth_rovo_action_kill_switch');
|
|
26
|
+
var is3PInlinePostAuthActionsEnabled = !isGoogleProvider && fg('rovogrowth-640-inline-action-nudge-fg');
|
|
27
|
+
var isSupportedFeature = supportsRovoActions && is3PInlinePostAuthActionsEnabled || is3PAuthRovoActionEnabled;
|
|
26
28
|
var isOptIn = (actionOptions === null || actionOptions === void 0 || (_actionOptions$rovoCh = actionOptions.rovoChatAction) === null || _actionOptions$rovoCh === void 0 ? void 0 : _actionOptions$rovoCh.optIn) === true;
|
|
27
29
|
var url = extractSmartLinkUrl(response);
|
|
28
30
|
return isSupportedFeature && isOptIn ? {
|
|
@@ -43,7 +43,7 @@ export var extractFlexibleCardActions = function extractFlexibleCardActions(_ref
|
|
|
43
43
|
response: response,
|
|
44
44
|
isPreviewPanelAvailable: isPreviewPanelAvailable,
|
|
45
45
|
openPreviewPanel: openPreviewPanel
|
|
46
|
-
})), ActionName.AutomationAction, extractAutomationAction(response)), InternalActionName.AISummaryAction, extractAISummaryAction(response, url, actionOptions, aiSummaryConfig)), fg('platform_sl_3p_auth_rovo_action_kill_switch') ? _defineProperty({}, InternalActionName.RovoChatAction, extractRovoChatAction({
|
|
46
|
+
})), ActionName.AutomationAction, extractAutomationAction(response)), InternalActionName.AISummaryAction, extractAISummaryAction(response, url, actionOptions, aiSummaryConfig)), fg('platform_sl_3p_auth_rovo_action_kill_switch') || fg('rovogrowth-640-inline-action-nudge-fg') ? _defineProperty({}, InternalActionName.RovoChatAction, extractRovoChatAction({
|
|
47
47
|
actionOptions: actionOptions,
|
|
48
48
|
appearance: appearance,
|
|
49
49
|
id: id,
|
|
@@ -48,7 +48,7 @@ var extractFlexibleUiContext = function extractFlexibleUiContext() {
|
|
|
48
48
|
fireEvent: fireEvent,
|
|
49
49
|
id: id,
|
|
50
50
|
origin: origin
|
|
51
|
-
}, fg('platform_sl_3p_auth_rovo_action_kill_switch') ? {
|
|
51
|
+
}, fg('platform_sl_3p_auth_rovo_action_kill_switch') || fg('rovogrowth-640-inline-action-nudge-fg') ? {
|
|
52
52
|
product: product,
|
|
53
53
|
rovoConfig: rovoConfig
|
|
54
54
|
} : undefined), {}, {
|
package/dist/esm/messages.js
CHANGED
|
@@ -945,5 +945,30 @@ export var messages = defineMessages({
|
|
|
945
945
|
id: 'fabric.linking.rovo_prompt_message_suggest_improvement.non-final',
|
|
946
946
|
defaultMessage: '<p>Using the {context} I’m viewing now, plus all files and links referenced in it (including <a>{url}</a>):</p><ul><li><p>Identify unclear reasoning, missing context, or contradictions between the item and its linked files.</p></li><li><p>Call out any places where assumptions are not backed up by data or prior docs.</p></li><li><p>Stay concise: summarize your findings in <b>no more than three short paragraphs of content listed as bullets</b> of no more than a couple of sentences long focused only on the two points above.</p></li><li><p>After presenting that summary, <b>ask me explicitly</b> if I want you to go deeper. Only if I say yes, then:</p><ul><li><p>Suggest concrete rewrites (bullets or short paragraphs) to make the argument clearer, more concise, and better aligned with the supporting files.</p></li><li><p>Propose 3–5 follow‑up edits or additions that would make this item and its linked docs “share‑ready” for stakeholders.</p></li></ul></li></ul>',
|
|
947
947
|
description: 'The prompt message to send to Rovo Chat. {context} refers to the content the user triggered from, e.g. Confluence page or Jira work item. {url} refers to Smart Link that the user triggers this action from. (Please make sure all html tags remain the same.)'
|
|
948
|
+
},
|
|
949
|
+
rovo_prompt_message_summarize: {
|
|
950
|
+
id: 'fabric.linking.rovo_prompt_message_summarize.non-final',
|
|
951
|
+
defaultMessage: '<p>Summarize the main ideas and key points of <a>{url}</a> in 3-5 clear, complete sentences.</p><p>Preserve any important details such as names, dates, and key decisions.</p>',
|
|
952
|
+
description: 'The prompt message to send to Rovo Chat. {url} refers to Smart Link that the user triggers this action from. (Please make sure all html tags remain the same.)'
|
|
953
|
+
},
|
|
954
|
+
rovo_prompt_button_key_highlights: {
|
|
955
|
+
id: 'fabric.linking.rovo_prompt_button_key_highlights.non-final',
|
|
956
|
+
defaultMessage: 'Key highlights',
|
|
957
|
+
description: 'The name of the action to send a key highlights prompt message to Rovo Chat in relation to current Smart Link'
|
|
958
|
+
},
|
|
959
|
+
rovo_prompt_message_key_highlights: {
|
|
960
|
+
id: 'fabric.linking.rovo_prompt_message_key_highlights.non-final',
|
|
961
|
+
defaultMessage: '<p>Based on <a>{url}</a> and the page or ticket I\'m currently viewing, highlight the parts of the linked content that are most relevant to this work. Explain briefly why each part is relevant.</p>',
|
|
962
|
+
description: 'The prompt message to send to Rovo Chat. {url} refers to Smart Link that the user triggers this action from. (Please make sure all html tags remain the same.)'
|
|
963
|
+
},
|
|
964
|
+
rovo_prompt_button_ask_rovo_anything: {
|
|
965
|
+
id: 'fabric.linking.rovo_prompt_button_ask_rovo.non-final',
|
|
966
|
+
defaultMessage: 'Ask Rovo',
|
|
967
|
+
description: 'The name of the action to open Rovo Chat and ask a question in relation to current Smart Link'
|
|
968
|
+
},
|
|
969
|
+
rovo_prompt_message_ask_rovo_anything: {
|
|
970
|
+
id: 'fabric.linking.rovo_prompt_message_ask_rovo_anything.non-final',
|
|
971
|
+
defaultMessage: '`I have a question about this linked item` {url}',
|
|
972
|
+
description: 'The placeholder prompt message pre-filled in Rovo Chat input. {url} refers to the Smart Link URL. This is not auto-submitted — the user types their question.'
|
|
948
973
|
}
|
|
949
974
|
});
|
|
@@ -10,7 +10,7 @@ var NOT_ENABLED_RESULT = {
|
|
|
10
10
|
};
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
|
-
* Returns whether the
|
|
13
|
+
* Returns whether the rovogrowth-640-inline-action-nudge-exp experiment
|
|
14
14
|
* is enabled for the current user and link context.
|
|
15
15
|
*
|
|
16
16
|
* All eligibility criteria are consolidated here:
|
|
@@ -33,7 +33,7 @@ var useInlineActionNudgeExperiment = function useInlineActionNudgeExperiment(url
|
|
|
33
33
|
if (extensionKey && EXCLUDED_EXTENSION_KEYS.has(extensionKey)) {
|
|
34
34
|
return NOT_ENABLED_RESULT;
|
|
35
35
|
}
|
|
36
|
-
var isEnabled = expValEquals('
|
|
36
|
+
var isEnabled = expValEquals('rovogrowth-640-inline-action-nudge-exp', 'isEnabled', true);
|
|
37
37
|
return {
|
|
38
38
|
isEnabled: isEnabled
|
|
39
39
|
};
|
package/dist/esm/view/FlexibleCard/components/actions/action/action-stack-item/action-button.js
CHANGED
|
@@ -34,8 +34,13 @@ var ActionButton = function ActionButton(_ref) {
|
|
|
34
34
|
onClickCallback();
|
|
35
35
|
}
|
|
36
36
|
}, [isDisabled, isLoading, onClickCallback]);
|
|
37
|
+
var is3pExperimentEnabled =
|
|
38
|
+
// eslint-disable-next-line @atlaskit/platform/no-preconditioning
|
|
39
|
+
fg('platform_sl_3p_auth_rovo_action_kill_switch') && expValEqualsNoExposure('platform_sl_3p_auth_rovo_action', 'isEnabled', true) ||
|
|
40
|
+
// eslint-disable-next-line @atlaskit/platform/no-preconditioning
|
|
41
|
+
fg('rovogrowth-640-inline-action-nudge-fg') && expValEqualsNoExposure('rovogrowth-640-inline-action-nudge-exp', 'isEnabled', true);
|
|
37
42
|
var icon = iconOption && isLoading ? /*#__PURE__*/React.createElement(ActionIcon, {
|
|
38
|
-
icon:
|
|
43
|
+
icon: is3pExperimentEnabled ? /*#__PURE__*/React.createElement(Box, {
|
|
39
44
|
xcss: styles.spinner
|
|
40
45
|
}, /*#__PURE__*/React.createElement(Spinner, {
|
|
41
46
|
size: 16,
|
|
@@ -8,6 +8,7 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
|
|
|
8
8
|
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) { _defineProperty(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; }
|
|
9
9
|
import React, { useCallback, useMemo } from 'react';
|
|
10
10
|
import { useIntl } from 'react-intl';
|
|
11
|
+
import { expValEqualsNoExposure } from '@atlaskit/tmp-editor-statsig/exp-val-equals-no-exposure';
|
|
11
12
|
import { InternalActionName } from '../../../../../constants';
|
|
12
13
|
import { messages } from '../../../../../messages';
|
|
13
14
|
import { useFlexibleUiContext } from '../../../../../state/flexible-ui-context';
|
|
@@ -22,9 +23,16 @@ export var RovoChatPromptKey = /*#__PURE__*/function (RovoChatPromptKey) {
|
|
|
22
23
|
RovoChatPromptKey["RECOMMEND_OTHER_SOURCES"] = "recommend-other-sources";
|
|
23
24
|
RovoChatPromptKey["SHOW_OTHER_MENTIONS"] = "show-other-mentions";
|
|
24
25
|
RovoChatPromptKey["SUGGEST_IMPROVEMENT"] = "suggest-improvement";
|
|
26
|
+
RovoChatPromptKey["SUMMARIZE_LINK"] = "summarize-link";
|
|
27
|
+
RovoChatPromptKey["KEY_HIGHLIGHTS"] = "key-highlights";
|
|
28
|
+
RovoChatPromptKey["ASK_ROVO_ANYTHING"] = "ask-rovo-anything";
|
|
25
29
|
return RovoChatPromptKey;
|
|
26
30
|
}({});
|
|
27
|
-
var
|
|
31
|
+
var GOOGLE_PROMPTS = [RovoChatPromptKey.RECOMMEND_OTHER_SOURCES, RovoChatPromptKey.SHOW_OTHER_MENTIONS, RovoChatPromptKey.SUGGEST_IMPROVEMENT];
|
|
32
|
+
var GENERIC_3P_PROMPTS = [
|
|
33
|
+
// For rovogrowth-640-inline-action-nudge-exp only. Applies to all RovoActions eligible providers, except Google
|
|
34
|
+
RovoChatPromptKey.SUMMARIZE_LINK, RovoChatPromptKey.KEY_HIGHLIGHTS, RovoChatPromptKey.ASK_ROVO_ANYTHING];
|
|
35
|
+
var DEFAULT_PROMPTS = GOOGLE_PROMPTS;
|
|
28
36
|
var getContext = function getContext(intl, product) {
|
|
29
37
|
switch (product) {
|
|
30
38
|
case 'CONFLUENCE':
|
|
@@ -109,13 +117,69 @@ var getPromptAction = function getPromptAction(promptKey, intl) {
|
|
|
109
117
|
prompt: htmlToAdf(html_improvement)
|
|
110
118
|
}
|
|
111
119
|
};
|
|
120
|
+
case RovoChatPromptKey.SUMMARIZE_LINK:
|
|
121
|
+
var label_summarize = intl.formatMessage(messages.ai_summarize);
|
|
122
|
+
var html_summarize = intl.formatMessage(messages.rovo_prompt_message_summarize, {
|
|
123
|
+
url: url
|
|
124
|
+
}, {
|
|
125
|
+
ignoreTag: true
|
|
126
|
+
});
|
|
127
|
+
return {
|
|
128
|
+
icon: /*#__PURE__*/React.createElement(AIEditIcon, null),
|
|
129
|
+
content: label_summarize,
|
|
130
|
+
tooltipMessage: label_summarize,
|
|
131
|
+
data: {
|
|
132
|
+
name: label_summarize,
|
|
133
|
+
dialogues: [],
|
|
134
|
+
prompt: htmlToAdf(html_summarize),
|
|
135
|
+
mode: {
|
|
136
|
+
fastModeEnabled: true
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
case RovoChatPromptKey.KEY_HIGHLIGHTS:
|
|
141
|
+
var label_key_highlights = intl.formatMessage(messages.rovo_prompt_button_key_highlights);
|
|
142
|
+
var html_key_highlights = intl.formatMessage(messages.rovo_prompt_message_key_highlights, {
|
|
143
|
+
url: url
|
|
144
|
+
}, {
|
|
145
|
+
ignoreTag: true
|
|
146
|
+
});
|
|
147
|
+
return {
|
|
148
|
+
icon: /*#__PURE__*/React.createElement(AiChapterIcon, null),
|
|
149
|
+
content: label_key_highlights,
|
|
150
|
+
tooltipMessage: label_key_highlights,
|
|
151
|
+
data: {
|
|
152
|
+
name: label_key_highlights,
|
|
153
|
+
dialogues: [],
|
|
154
|
+
prompt: htmlToAdf(html_key_highlights),
|
|
155
|
+
mode: {
|
|
156
|
+
fastModeEnabled: true
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
};
|
|
160
|
+
case RovoChatPromptKey.ASK_ROVO_ANYTHING:
|
|
161
|
+
var label_ask_rovo_anything = intl.formatMessage(messages.rovo_prompt_button_ask_rovo_anything);
|
|
162
|
+
var prompt_ask_rovo_anything = intl.formatMessage(messages.rovo_prompt_message_ask_rovo_anything, {
|
|
163
|
+
url: url
|
|
164
|
+
});
|
|
165
|
+
return {
|
|
166
|
+
icon: /*#__PURE__*/React.createElement(AISearchIcon, null),
|
|
167
|
+
content: label_ask_rovo_anything,
|
|
168
|
+
tooltipMessage: label_ask_rovo_anything,
|
|
169
|
+
data: {
|
|
170
|
+
name: label_ask_rovo_anything,
|
|
171
|
+
dialogues: [],
|
|
172
|
+
prompt: prompt_ask_rovo_anything,
|
|
173
|
+
isPromptPlaceholder: true,
|
|
174
|
+
placeholderType: 'generic'
|
|
175
|
+
}
|
|
176
|
+
};
|
|
112
177
|
}
|
|
113
178
|
};
|
|
114
179
|
var RovoChatAction = function RovoChatAction(_ref2) {
|
|
115
|
-
var _context$actions;
|
|
180
|
+
var _context$actions, _data$invokeAction2;
|
|
116
181
|
var onClickCallback = _ref2.onClick,
|
|
117
|
-
|
|
118
|
-
prompts = _ref2$prompts === void 0 ? DEFAULT_PROMPTS : _ref2$prompts,
|
|
182
|
+
prompts = _ref2.prompts,
|
|
119
183
|
_ref2$testId = _ref2.testId,
|
|
120
184
|
testId = _ref2$testId === void 0 ? 'smart-action-rovo-chat-action' : _ref2$testId,
|
|
121
185
|
props = _objectWithoutProperties(_ref2, _excluded);
|
|
@@ -125,6 +189,16 @@ var RovoChatAction = function RovoChatAction(_ref2) {
|
|
|
125
189
|
sendPromptMessage = _useRovoChat.sendPromptMessage;
|
|
126
190
|
var context = useFlexibleUiContext();
|
|
127
191
|
var data = context === null || context === void 0 || (_context$actions = context.actions) === null || _context$actions === void 0 ? void 0 : _context$actions[InternalActionName.RovoChatAction];
|
|
192
|
+
var resolvedPrompts = useMemo(function () {
|
|
193
|
+
var _data$invokeAction;
|
|
194
|
+
if (prompts) {
|
|
195
|
+
return prompts;
|
|
196
|
+
}
|
|
197
|
+
if (expValEqualsNoExposure('rovogrowth-640-inline-action-nudge-exp', 'isEnabled', true) && (data === null || data === void 0 || (_data$invokeAction = data.invokeAction) === null || _data$invokeAction === void 0 ? void 0 : _data$invokeAction.extensionKey) !== 'google-object-provider') {
|
|
198
|
+
return GENERIC_3P_PROMPTS;
|
|
199
|
+
}
|
|
200
|
+
return DEFAULT_PROMPTS;
|
|
201
|
+
}, [prompts, data === null || data === void 0 || (_data$invokeAction2 = data.invokeAction) === null || _data$invokeAction2 === void 0 ? void 0 : _data$invokeAction2.extensionKey]);
|
|
128
202
|
var invoke = useInvokeClientAction({});
|
|
129
203
|
var _onClick = useCallback(function (promptData, promptKey) {
|
|
130
204
|
if (promptData && data !== null && data !== void 0 && data.invokeAction) {
|
|
@@ -152,7 +226,7 @@ var RovoChatAction = function RovoChatAction(_ref2) {
|
|
|
152
226
|
}
|
|
153
227
|
}, [data === null || data === void 0 ? void 0 : data.invokeAction, invoke, onClickCallback, sendPromptMessage]);
|
|
154
228
|
var promptActions = useMemo(function () {
|
|
155
|
-
return
|
|
229
|
+
return resolvedPrompts.map(function (promptKey, idx) {
|
|
156
230
|
var _ref3 = getPromptAction(promptKey, intl, data === null || data === void 0 ? void 0 : data.url, data === null || data === void 0 ? void 0 : data.product) || {},
|
|
157
231
|
icon = _ref3.icon,
|
|
158
232
|
content = _ref3.content,
|
|
@@ -169,7 +243,7 @@ var RovoChatAction = function RovoChatAction(_ref2) {
|
|
|
169
243
|
tooltipMessage: tooltipMessage
|
|
170
244
|
}, props)) : null;
|
|
171
245
|
});
|
|
172
|
-
}, [data, intl, _onClick,
|
|
246
|
+
}, [data, intl, _onClick, resolvedPrompts, props, testId]);
|
|
173
247
|
return isRovoChatEnabled && data && (promptActions === null || promptActions === void 0 ? void 0 : promptActions.length) > 0 ? /*#__PURE__*/React.createElement(React.Fragment, null, promptActions) : null;
|
|
174
248
|
};
|
|
175
249
|
export default RovoChatAction;
|
|
@@ -50,10 +50,10 @@ var ActionBlock = function ActionBlock(_ref) {
|
|
|
50
50
|
className = _ref.className,
|
|
51
51
|
_ref$testId = _ref.testId,
|
|
52
52
|
testId = _ref$testId === void 0 ? 'smart-block-action' : _ref$testId,
|
|
53
|
-
|
|
53
|
+
isAny3pRovoActionsExperimentOn = _ref.isAny3pRovoActionsExperimentOn;
|
|
54
54
|
var context = useFlexibleUiContext();
|
|
55
55
|
var ui = useFlexibleUiOptionContext();
|
|
56
|
-
var isRovoChatActionAvailable =
|
|
56
|
+
var isRovoChatActionAvailable = (fg('platform_sl_3p_auth_rovo_action_kill_switch') || fg('rovogrowth-640-inline-action-nudge-fg')) && isAny3pRovoActionsExperimentOn ? (context === null || context === void 0 || (_context$actions = context.actions) === null || _context$actions === void 0 ? void 0 : _context$actions[InternalActionName.RovoChatAction]) !== undefined : undefined;
|
|
57
57
|
var _useState = useState(),
|
|
58
58
|
_useState2 = _slicedToArray(_useState, 2),
|
|
59
59
|
message = _useState2[0],
|
|
@@ -77,7 +77,7 @@ var ActionBlock = function ActionBlock(_ref) {
|
|
|
77
77
|
if (!(context !== null && context !== void 0 && context.actions)) {
|
|
78
78
|
return;
|
|
79
79
|
}
|
|
80
|
-
var arr = fg('platform_sl_3p_auth_rovo_action_kill_switch') ? isRovoChatActionAvailable ? [InternalActionName.RovoChatAction] : Object.keys(context.actions).filter(function (name) {
|
|
80
|
+
var arr = fg('platform_sl_3p_auth_rovo_action_kill_switch') || fg('rovogrowth-640-inline-action-nudge-fg') ? isRovoChatActionAvailable ? [InternalActionName.RovoChatAction] : Object.keys(context.actions).filter(function (name) {
|
|
81
81
|
return name !== InternalActionName.RovoChatAction;
|
|
82
82
|
}) : Object.keys(context.actions);
|
|
83
83
|
arr.sort(sort);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
|
2
2
|
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
3
|
-
var _excluded = ["
|
|
3
|
+
var _excluded = ["isAny3pRovoActionsExperimentOn", "testId"];
|
|
4
4
|
import React from 'react';
|
|
5
5
|
import { InternalActionName, SmartLinkStatus } from '../../../../../constants';
|
|
6
6
|
import { useFlexibleCardContext, useFlexibleUiContext } from '../../../../../state/flexible-ui-context';
|
|
@@ -14,7 +14,7 @@ import AISummaryBlockResolvedView, { RovoSummaryBlockResolvedView } from './reso
|
|
|
14
14
|
*/
|
|
15
15
|
var AISummaryBlock = function AISummaryBlock(_ref) {
|
|
16
16
|
var _context$actions, _props$size2, _cardContext$ui2;
|
|
17
|
-
var
|
|
17
|
+
var isAny3pRovoActionsExperimentOn = _ref.isAny3pRovoActionsExperimentOn,
|
|
18
18
|
_ref$testId = _ref.testId,
|
|
19
19
|
testId = _ref$testId === void 0 ? 'smart-ai-summary-block' : _ref$testId,
|
|
20
20
|
props = _objectWithoutProperties(_ref, _excluded);
|
|
@@ -27,7 +27,7 @@ var AISummaryBlock = function AISummaryBlock(_ref) {
|
|
|
27
27
|
if (!(actionData !== null && actionData !== void 0 && actionData.url)) {
|
|
28
28
|
return null;
|
|
29
29
|
}
|
|
30
|
-
if (
|
|
30
|
+
if (isAny3pRovoActionsExperimentOn) {
|
|
31
31
|
var _props$size, _cardContext$ui;
|
|
32
32
|
return /*#__PURE__*/React.createElement(RovoSummaryBlockResolvedView, _extends({}, props, {
|
|
33
33
|
size: (_props$size = props.size) !== null && _props$size !== void 0 ? _props$size : cardContext === null || cardContext === void 0 || (_cardContext$ui = cardContext.ui) === null || _cardContext$ui === void 0 ? void 0 : _cardContext$ui.size,
|
|
@@ -49,7 +49,7 @@ var FlexibleCard = function FlexibleCard(_ref) {
|
|
|
49
49
|
isPreviewPanelAvailable = _useSmartLinkContext.isPreviewPanelAvailable,
|
|
50
50
|
openPreviewPanel = _useSmartLinkContext.openPreviewPanel,
|
|
51
51
|
product = _useSmartLinkContext.product;
|
|
52
|
-
var rovoConfig = fg('platform_sl_3p_auth_rovo_action_kill_switch') ?
|
|
52
|
+
var rovoConfig = fg('platform_sl_3p_auth_rovo_action_kill_switch') || fg('rovogrowth-640-inline-action-nudge-fg') ?
|
|
53
53
|
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
54
54
|
useRovoConfig() : undefined;
|
|
55
55
|
var _useAnalyticsEvents = useAnalyticsEvents(),
|
|
@@ -76,7 +76,7 @@ var FlexibleCard = function FlexibleCard(_ref) {
|
|
|
76
76
|
origin: origin,
|
|
77
77
|
renderers: renderers,
|
|
78
78
|
resolve: resolve
|
|
79
|
-
}, fg('platform_sl_3p_auth_rovo_action_kill_switch') ? {
|
|
79
|
+
}, fg('platform_sl_3p_auth_rovo_action_kill_switch') || fg('rovogrowth-640-inline-action-nudge-fg') ? {
|
|
80
80
|
product: product,
|
|
81
81
|
rovoConfig: rovoConfig
|
|
82
82
|
} : undefined), {}, {
|