@rh-support/troubleshoot 2.6.118 → 2.6.120
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/lib/esm/components/AccountInfo/AccountSelector.js +1 -1
- package/lib/esm/components/AccountInfo/css/accountSelector.css +3 -2
- package/lib/esm/components/CaseEditView/Case.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Case.js +1 -1
- package/lib/esm/components/CaseEditView/CaseOverview/CaseOwnerInfo.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/CaseOverview/CaseOwnerInfo.js +1 -1
- package/lib/esm/components/CaseEditView/CaseOverview/CaseType.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/CaseOverview/CaseType.js +2 -4
- package/lib/esm/components/CaseEditView/CaseOverview/index.js +2 -2
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenShiftPopover.js +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/ProductVersion.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/ProductVersion.js +4 -2
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment.js +2 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/VerifyCaseStatusModal/VerifyCaseStatusModal.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/VerifyCaseStatusModal/VerifyCaseStatusModal.js +2 -3
- package/lib/esm/components/CaseEditView/Tabs/CaseHistory/Timeline.css +13 -33
- package/lib/esm/components/CaseEditView/Tabs/CaseSummary/CaseSummary.js +3 -3
- package/lib/esm/components/CaseEditView/Tabs/CaseSummary/CaseSummaryErrorMessage.js +1 -1
- package/lib/esm/components/CaseEditView/Tabs/RelatedTasks/RelatedTasks.js +1 -1
- package/lib/esm/components/CaseInformation/CaseGroup.d.ts.map +1 -1
- package/lib/esm/components/CaseInformation/CaseGroup.js +11 -1
- package/lib/esm/components/CaseInformation/CaseInformation.d.ts.map +1 -1
- package/lib/esm/components/CaseInformation/CaseInformation.js +4 -4
- package/lib/esm/components/CaseInformation/Description.d.ts.map +1 -1
- package/lib/esm/components/CaseInformation/Description.js +1 -3
- package/lib/esm/components/CaseInformation/Severity.d.ts.map +1 -1
- package/lib/esm/components/CaseInformation/Severity.js +1 -1
- package/lib/esm/components/CaseInformation/SupportLevel.d.ts.map +1 -1
- package/lib/esm/components/CaseInformation/SupportLevel.js +1 -1
- package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.d.ts.map +1 -1
- package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.js +12 -6
- package/lib/esm/components/IdeaInformation/IdeaInformation.d.ts.map +1 -1
- package/lib/esm/components/IdeaInformation/IdeaInformation.js +4 -4
- package/lib/esm/components/OpenCase/OpenCase.d.ts.map +1 -1
- package/lib/esm/components/OpenCase/OpenCase.js +8 -2
- package/lib/esm/components/ProductSelector/AllProductsSelector.d.ts.map +1 -1
- package/lib/esm/components/ProductSelector/AllProductsSelector.js +18 -6
- package/lib/esm/components/ProductSelector/ProductSelector.d.ts.map +1 -1
- package/lib/esm/components/ProductSelector/ProductSelector.js +12 -5
- package/lib/esm/components/Recommendations/ClusterRecommendationItems.d.ts +2 -0
- package/lib/esm/components/Recommendations/ClusterRecommendationItems.d.ts.map +1 -1
- package/lib/esm/components/Recommendations/ClusterRecommendationItems.js +16 -13
- package/lib/esm/components/Recommendations/ClusterRecommendations.d.ts.map +1 -1
- package/lib/esm/components/Recommendations/ClusterRecommendations.js +1 -4
- package/lib/esm/components/Recommendations/Recommendations.d.ts.map +1 -1
- package/lib/esm/components/Recommendations/Recommendations.js +38 -38
- package/lib/esm/components/RemoteRider/RemoteRiderAcceptanceModal.d.ts.map +1 -1
- package/lib/esm/components/Review/Review.d.ts.map +1 -1
- package/lib/esm/components/Review/Review.js +5 -1
- package/lib/esm/components/TroubleshootSection/AskRedHat.js +1 -1
- package/lib/esm/components/TroubleshootSection/TroubleshootSection.d.ts +0 -9
- package/lib/esm/components/TroubleshootSection/TroubleshootSection.d.ts.map +1 -1
- package/lib/esm/components/TroubleshootSection/TroubleshootSection.js +44 -150
- package/lib/esm/components/shared/useIsSectionValid.d.ts.map +1 -1
- package/lib/esm/components/shared/useIsSectionValid.js +71 -32
- package/lib/esm/components/wizardLayout/WizardAside.d.ts.map +1 -1
- package/lib/esm/components/wizardLayout/WizardAside.js +9 -18
- package/lib/esm/components/wizardLayout/WizardMain.d.ts.map +1 -1
- package/lib/esm/components/wizardLayout/WizardMain.js +64 -110
- package/lib/esm/components/wizardLayout/WizardNavigation.d.ts.map +1 -1
- package/lib/esm/components/wizardLayout/WizardNavigation.js +53 -59
- package/lib/esm/css/AskRedHat.css +2 -9
- package/lib/esm/css/app.css +1 -1
- package/lib/esm/hooks/useWizard.d.ts +0 -4
- package/lib/esm/hooks/useWizard.d.ts.map +1 -1
- package/lib/esm/hooks/useWizard.js +6 -20
- package/lib/esm/reducers/AIResponseConstNTypes.d.ts +2 -17
- package/lib/esm/reducers/AIResponseConstNTypes.d.ts.map +1 -1
- package/lib/esm/reducers/AIResponseConstNTypes.js +0 -3
- package/lib/esm/reducers/AIResponseReducer.d.ts +0 -2
- package/lib/esm/reducers/AIResponseReducer.d.ts.map +1 -1
- package/lib/esm/reducers/AIResponseReducer.js +0 -17
- package/lib/esm/reducers/CaseConstNTypes.js +3 -3
- package/lib/esm/reducers/CaseDiscussionTabReducer.js +1 -1
- package/lib/esm/reducers/CaseHelpers.d.ts +8 -6
- package/lib/esm/reducers/CaseHelpers.d.ts.map +1 -1
- package/lib/esm/reducers/CaseHelpers.js +20 -10
- package/lib/esm/reducers/CaseReducer.d.ts +1 -0
- package/lib/esm/reducers/CaseReducer.d.ts.map +1 -1
- package/lib/esm/reducers/CaseReducer.js +37 -2
- package/lib/esm/reducers/RouteConstNTypes.d.ts.map +1 -1
- package/lib/esm/reducers/RouteConstNTypes.js +1 -0
- package/lib/esm/scss/_pf-overrides.scss +23 -2
- package/package.json +7 -9
- package/lib/esm/components/Suggestions/TopContentSidebar.d.ts +0 -3
- package/lib/esm/components/Suggestions/TopContentSidebar.d.ts.map +0 -1
- package/lib/esm/components/Suggestions/TopContentSidebar.js +0 -26
- package/lib/esm/hooks/useAB.d.ts +0 -22
- package/lib/esm/hooks/useAB.d.ts.map +0 -1
- package/lib/esm/hooks/useAB.js +0 -37
|
@@ -8,46 +8,26 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
10
|
import '@ifd-ui/ask-redhat-core/ask-redhat-core.css';
|
|
11
|
-
import { Env
|
|
12
|
-
import {
|
|
11
|
+
import { Env } from '@cee-eng/hydrajs';
|
|
12
|
+
import { AskRedHatChat, setAuthToken } from '@ifd-ui/ask-redhat-core';
|
|
13
13
|
import { Button, Card, CardBody, CardHeader, Tooltip } from '@patternfly/react-core';
|
|
14
14
|
import InfoCircleIcon from '@patternfly/react-icons/dist/js/icons/info-circle-icon';
|
|
15
15
|
import { ErrorBoundary, LoadingDots } from '@rh-support/components';
|
|
16
16
|
import { PreviousCaseTypes } from '@rh-support/utils';
|
|
17
|
-
import i18next from 'i18next';
|
|
18
17
|
import isEmpty from 'lodash/isEmpty';
|
|
19
18
|
import isEqual from 'lodash/isEqual';
|
|
20
|
-
import React, {
|
|
19
|
+
import React, { useContext, useRef } from 'react';
|
|
21
20
|
import { Trans, useTranslation } from 'react-i18next';
|
|
22
|
-
import {
|
|
21
|
+
import { useAIResponseState } from '../../context/AIResponseContext';
|
|
23
22
|
import { useCaseSelector } from '../../context/CaseContext';
|
|
24
23
|
import { RouteContext } from '../../context/RouteContext';
|
|
25
|
-
import { SessionRestoreDispatchContext, SessionRestoreStateContext } from '../../context/SessionRestoreContext';
|
|
26
24
|
import { TCStateContext } from '../../context/TopContentContext';
|
|
27
|
-
import { useAB } from '../../hooks/useAB';
|
|
28
|
-
import { setHasChunkReceived, updateConversationId } from '../../reducers/AIResponseReducer';
|
|
29
25
|
import { appSourceId_ARH, excludedCaseTypesforARH } from '../../reducers/CaseConstNTypes';
|
|
30
|
-
import { AppRouteSections } from '../../reducers/RouteConstNTypes';
|
|
31
|
-
import { createOrUpdateSessionResources } from '../../reducers/SessionRestoreReducer';
|
|
32
26
|
import { OpenShiftClusterId } from '../CaseManagement/OpenShiftClusterId';
|
|
33
27
|
import ClusterRecommendations from '../Recommendations/ClusterRecommendations';
|
|
34
28
|
import InsightsResults from '../Recommendations/InsightsResults';
|
|
35
|
-
import Recommendations from '../Recommendations/Recommendations';
|
|
36
29
|
import Suggestions from '../Suggestions/Suggestions';
|
|
37
|
-
import { generateAIQuestion } from '../wizardLayout/WizardMain';
|
|
38
30
|
import { AskRedHat } from './AskRedHat';
|
|
39
|
-
const { SessionResourceSource, SessionResourceVisibility } = pcm.preCase.session;
|
|
40
|
-
const getSessResFromARHSource = (source, visibilityStatus, rank = 1) => ({
|
|
41
|
-
visibilityStatus,
|
|
42
|
-
resourceEntityId: source.link || source.url,
|
|
43
|
-
url: source.link || source.url,
|
|
44
|
-
rank,
|
|
45
|
-
});
|
|
46
|
-
const getSessResFromAISources = (sources, visibilityStatus) => {
|
|
47
|
-
if (!sources || sources.length === 0)
|
|
48
|
-
return;
|
|
49
|
-
return sources.map((source, index) => getSessResFromARHSource(source, visibilityStatus, index + 1));
|
|
50
|
-
};
|
|
51
31
|
const defaultProps = {
|
|
52
32
|
initialIsEditing: false,
|
|
53
33
|
required: false,
|
|
@@ -55,28 +35,18 @@ const defaultProps = {
|
|
|
55
35
|
autoFocus: false,
|
|
56
36
|
hideSaveCancel: false,
|
|
57
37
|
aiServicesAvailable: false,
|
|
58
|
-
haveARHFieldsChanged: false,
|
|
59
38
|
};
|
|
60
39
|
function TroubleshootSection(props) {
|
|
61
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k
|
|
40
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
62
41
|
const { t } = useTranslation();
|
|
63
|
-
const {
|
|
64
|
-
const
|
|
65
|
-
const lastDispatchedConversationIdRef = useRef(null);
|
|
66
|
-
const sourcesRef = useRef(null);
|
|
67
|
-
const clickedSourcesRef = useRef(new Set());
|
|
68
|
-
const engagementTimerRef = useRef(null);
|
|
69
|
-
const hasInteractionHappenedRef = useRef(false);
|
|
42
|
+
const { aiServicesAvailable, isAIChatMode, setIsAIChatMode, onChatWithAIClick } = props;
|
|
43
|
+
const refetchControlReady = useRef(null);
|
|
70
44
|
const { topContentState: { topContent }, } = useContext(TCStateContext);
|
|
71
|
-
const { routeState: { isCaseCreate
|
|
72
|
-
const { caseDetails } = useCaseSelector((state) => ({
|
|
73
|
-
caseDetails: state.caseDetails,
|
|
74
|
-
}), isEqual);
|
|
45
|
+
const { routeState: { isCaseCreate }, } = useContext(RouteContext);
|
|
75
46
|
const aiResponseState = useAIResponseState();
|
|
76
|
-
const aiResponseDispatch = useAIResponseDispatch();
|
|
77
47
|
const session = window === null || window === void 0 ? void 0 : window.sessionjs;
|
|
78
48
|
const keycloakSession = (_b = (_a = session === null || session === void 0 ? void 0 : session._state) === null || _a === void 0 ? void 0 : _a.keycloak) !== null && _b !== void 0 ? _b : null;
|
|
79
|
-
const { product, version,
|
|
49
|
+
const { product, version, isCreatingCase, caseType } = useCaseSelector((state) => ({
|
|
80
50
|
product: state.caseDetails.product,
|
|
81
51
|
version: state.caseDetails.version,
|
|
82
52
|
summary: state.caseDetails.summary,
|
|
@@ -84,69 +54,35 @@ function TroubleshootSection(props) {
|
|
|
84
54
|
caseType: state.caseDetails.caseType,
|
|
85
55
|
issue: state.caseDetails.issue,
|
|
86
56
|
}), isEqual);
|
|
87
|
-
const { sessionRestore: { activeSessionId, sessionResourceTracking }, } = useContext(SessionRestoreStateContext);
|
|
88
|
-
const sessionRestoreDispatch = useContext(SessionRestoreDispatchContext);
|
|
89
57
|
const canShowTopProducts = isEmpty(product);
|
|
90
58
|
const canShowTopContent = !canShowTopProducts && ((_c = topContent === null || topContent === void 0 ? void 0 : topContent.data) === null || _c === void 0 ? void 0 : _c.length) > 0;
|
|
91
59
|
const isNotAnIdea = caseType !== PreviousCaseTypes.FEATURE_ENHANCEMENT;
|
|
92
|
-
const
|
|
93
|
-
if (
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
if (
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
}
|
|
109
|
-
else {
|
|
110
|
-
createOrUpdateSessionResources(sessionRestoreDispatch, activeSessionId, sessionResourceTracking, SessionResourceSource.ASK_RED_HAT, undefined, payload);
|
|
111
|
-
}
|
|
112
|
-
}, [activeSessionId, product, version, summary, issue, sessionRestoreDispatch, sessionResourceTracking]);
|
|
113
|
-
const handleARHEvent = useCallback((eventData) => {
|
|
114
|
-
// Enable "See more resources" button when first chunk is received
|
|
115
|
-
if (eventData.eventName === ARHEventName.AnswerReceived) {
|
|
116
|
-
aiResponseDispatch(setHasChunkReceived(true));
|
|
117
|
-
}
|
|
118
|
-
// If message sent with conversationId, call API immediately (engagement happened)
|
|
119
|
-
if (eventData.eventName === ARHEventName.MessageSent && isVariationA) {
|
|
120
|
-
const { conversationId } = eventData.payload;
|
|
121
|
-
if (conversationId !== undefined && conversationId !== null && conversationId !== '') {
|
|
122
|
-
clearEngagementTimer();
|
|
123
|
-
if (!hasInteractionHappenedRef.current) {
|
|
124
|
-
hasInteractionHappenedRef.current = true;
|
|
125
|
-
callResourceAPI(sourcesRef.current, SessionResourceVisibility.PRESENTED);
|
|
60
|
+
const shouldShowARHUI = () => {
|
|
61
|
+
// Check if the case type is allowed (not in the excluded list)
|
|
62
|
+
const isCaseTypeAllowed = !excludedCaseTypesforARH.includes(caseType !== null && caseType !== void 0 ? caseType : '');
|
|
63
|
+
// Check if user is not a secure support or confirmed stateside support user
|
|
64
|
+
const isNotSecureOrStatesideUser = !props.isSecureSupport && !props.hasConfirmedStatesideSupport;
|
|
65
|
+
// Check if AI services are available
|
|
66
|
+
const isAIServicesAvailable = aiServicesAvailable;
|
|
67
|
+
return isCaseTypeAllowed && isNotSecureOrStatesideUser && isAIServicesAvailable;
|
|
68
|
+
};
|
|
69
|
+
const handleInitialized = (success, error) => {
|
|
70
|
+
var _a, _b;
|
|
71
|
+
if (success) {
|
|
72
|
+
console.log('Chat initialized successfully');
|
|
73
|
+
try {
|
|
74
|
+
if (!isEmpty((_a = aiResponseState.aiResponse) === null || _a === void 0 ? void 0 : _a.conversationId)) {
|
|
75
|
+
(_b = refetchControlReady.current) === null || _b === void 0 ? void 0 : _b.refetch();
|
|
126
76
|
}
|
|
127
77
|
}
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
const { conversationId, sources } = eventData.payload;
|
|
131
|
-
if (sources && Array.isArray(sources)) {
|
|
132
|
-
sourcesRef.current = sources.map((source) => (Object.assign(Object.assign({}, source), { url: source.sourceUrl || source.url, link: source.sourceUrl || source.link })));
|
|
133
|
-
}
|
|
134
|
-
if (conversationId && conversationId !== lastDispatchedConversationIdRef.current) {
|
|
135
|
-
lastDispatchedConversationIdRef.current = conversationId;
|
|
136
|
-
aiResponseDispatch(updateConversationId(conversationId));
|
|
78
|
+
catch (error) {
|
|
79
|
+
console.error('Failed to refetch conversation:', error);
|
|
137
80
|
}
|
|
138
81
|
}
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
if (!sourceUrl || clickedSourcesRef.current.has(sourceUrl))
|
|
142
|
-
return;
|
|
143
|
-
clickedSourcesRef.current.add(sourceUrl);
|
|
144
|
-
hasInteractionHappenedRef.current = true;
|
|
145
|
-
clearEngagementTimer();
|
|
146
|
-
const source = { url: sourceUrl, link: sourceUrl, sourceUrl, sourceText };
|
|
147
|
-
callResourceAPI([source], SessionResourceVisibility.VISITED);
|
|
82
|
+
else {
|
|
83
|
+
console.error('Chat initialization failed:', error);
|
|
148
84
|
}
|
|
149
|
-
}
|
|
85
|
+
};
|
|
150
86
|
const preprocessRequest = () => __awaiter(this, void 0, void 0, function* () {
|
|
151
87
|
var _a;
|
|
152
88
|
if (!keycloakSession) {
|
|
@@ -168,42 +104,14 @@ function TroubleshootSection(props) {
|
|
|
168
104
|
throw error;
|
|
169
105
|
}
|
|
170
106
|
});
|
|
171
|
-
const detailedQuestion = generateAIQuestion(activeSection || '', caseDetails.product, caseDetails.version, caseDetails.summary, caseDetails.issue, caseDetails.caseType || '', i18next.language || 'en');
|
|
172
|
-
const latestUserMessage = isVariationA && ((_d = aiResponseState.aiResponse) === null || _d === void 0 ? void 0 : _d.conversationId) && props.haveARHFieldsChanged
|
|
173
|
-
? detailedQuestion
|
|
174
|
-
: '';
|
|
175
|
-
const firstUserMessage = isVariationA && !((_e = aiResponseState.aiResponse) === null || _e === void 0 ? void 0 : _e.conversationId) ? detailedQuestion : '';
|
|
176
|
-
// Reset the flag when component unmounts
|
|
177
|
-
useEffect(() => {
|
|
178
|
-
return () => {
|
|
179
|
-
var _a;
|
|
180
|
-
(_a = props.resetARHFieldsChanged) === null || _a === void 0 ? void 0 : _a.call(props);
|
|
181
|
-
};
|
|
182
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
183
|
-
}, []);
|
|
184
|
-
// 10-second engagement timer - call API if no source clicked or message not sent by user
|
|
185
|
-
useEffect(() => {
|
|
186
|
-
if (aiResponseState.hasChunkReceived && isVariationA) {
|
|
187
|
-
engagementTimerRef.current = setTimeout(() => {
|
|
188
|
-
if (hasInteractionHappenedRef.current || clickedSourcesRef.current.size > 0) {
|
|
189
|
-
return;
|
|
190
|
-
}
|
|
191
|
-
callResourceAPI(sourcesRef.current, SessionResourceVisibility.PRESENTED);
|
|
192
|
-
engagementTimerRef.current = null;
|
|
193
|
-
}, 10000);
|
|
194
|
-
return clearEngagementTimer;
|
|
195
|
-
}
|
|
196
|
-
}, [aiResponseState.hasChunkReceived, isVariationA, callResourceAPI, clearEngagementTimer]);
|
|
197
107
|
const initConfig = {
|
|
198
|
-
packageVersion: (
|
|
108
|
+
packageVersion: (_d = window === null || window === void 0 ? void 0 : window.supportVersionInfo) === null || _d === void 0 ? void 0 : _d.packageVersion,
|
|
199
109
|
appSourceId: appSourceId_ARH,
|
|
200
110
|
enableDebugLogging: false,
|
|
201
111
|
headerTitle: isCaseCreate ? t('Resolve your issue now with AI insights') : t('Troubleshoot with AI insights'),
|
|
202
112
|
appEnv: Env.getEnvName(),
|
|
203
113
|
showWelcomeMessage: false,
|
|
204
|
-
|
|
205
|
-
conversationId: (_h = (_g = aiResponseState.aiResponse) === null || _g === void 0 ? void 0 : _g.conversationId) !== null && _h !== void 0 ? _h : '',
|
|
206
|
-
latestUserMessage: latestUserMessage,
|
|
114
|
+
conversationId: ((_e = aiResponseState.aiResponse) === null || _e === void 0 ? void 0 : _e.conversationId) || undefined,
|
|
207
115
|
enableHeaderMenu: false,
|
|
208
116
|
enableTheme: false,
|
|
209
117
|
openLinkInNewTab: true,
|
|
@@ -214,8 +122,8 @@ function TroubleshootSection(props) {
|
|
|
214
122
|
} })),
|
|
215
123
|
tokenAuth: {
|
|
216
124
|
auth: {
|
|
217
|
-
userInfo: (
|
|
218
|
-
authToken: (
|
|
125
|
+
userInfo: (_h = (_g = (_f = window === null || window === void 0 ? void 0 : window.sessionjs) === null || _f === void 0 ? void 0 : _f.getToken) === null || _g === void 0 ? void 0 : _g.call(_f)) !== null && _h !== void 0 ? _h : {},
|
|
126
|
+
authToken: (_k = (_j = window === null || window === void 0 ? void 0 : window.sessionjs) === null || _j === void 0 ? void 0 : _j.getEncodedToken()) !== null && _k !== void 0 ? _k : '',
|
|
219
127
|
},
|
|
220
128
|
events: {
|
|
221
129
|
preprocessRequest,
|
|
@@ -225,45 +133,31 @@ function TroubleshootSection(props) {
|
|
|
225
133
|
},
|
|
226
134
|
},
|
|
227
135
|
},
|
|
228
|
-
|
|
136
|
+
onInitialized: handleInitialized,
|
|
229
137
|
onUnauthenticatedLogin: () => {
|
|
230
138
|
var _a, _b;
|
|
231
139
|
(_b = (_a = window === null || window === void 0 ? void 0 : window.sessionjs) === null || _a === void 0 ? void 0 : _a.login) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
232
140
|
},
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
return false;
|
|
237
|
-
}
|
|
238
|
-
// Check if the case type is allowed (not in the excluded list)
|
|
239
|
-
const isCaseTypeAllowed = !excludedCaseTypesforARH.includes(caseType !== null && caseType !== void 0 ? caseType : '');
|
|
240
|
-
// Check if user is not a secure support or confirmed stateside support user
|
|
241
|
-
const isNotSecureOrStatesideUser = !props.isSecureSupport && !props.hasConfirmedStatesideSupport;
|
|
242
|
-
// Check if AI services are available
|
|
243
|
-
const isAIServicesAvailable = props.aiServicesAvailable;
|
|
244
|
-
return isCaseTypeAllowed && isNotSecureOrStatesideUser && isAIServicesAvailable;
|
|
141
|
+
onForceRefetchConversation: (refetchControl) => {
|
|
142
|
+
refetchControlReady.current = refetchControl;
|
|
143
|
+
},
|
|
245
144
|
};
|
|
246
145
|
const handleChatWithAIClick = () => {
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
(_a = props.onChatWithAIClick) === null || _a === void 0 ? void 0 : _a.call(props);
|
|
146
|
+
setIsAIChatMode(true);
|
|
147
|
+
onChatWithAIClick === null || onChatWithAIClick === void 0 ? void 0 : onChatWithAIClick();
|
|
250
148
|
};
|
|
251
149
|
return (React.createElement(React.Fragment, null, isAIChatMode ? (React.createElement(React.Fragment, null,
|
|
252
150
|
React.createElement(AskRedHatChat, { initConfig: initConfig }),
|
|
253
|
-
React.createElement("div", { className: "fullscreen-chat-footer" },
|
|
254
|
-
React.createElement("button", { onClick: props.onBack, className: "btn btn-app btn-open-white main-nav-button", type: "button" }, t('Go back')),
|
|
255
|
-
React.createElement("button", { onClick: () => props.setIsAIChatMode(false), className: "btn btn-app btn-primary main-nav-button", type: "button", disabled: !aiResponseState.hasChunkReceived }, t('See more resources')))) : isCaseCreate ? (React.createElement("span", null,
|
|
151
|
+
React.createElement("div", { className: "fullscreen-chat-footer" }, isCaseCreate ? (React.createElement("span", null,
|
|
256
152
|
React.createElement(Trans, { i18nKey: "<span>Return to</span> <button>case creation</button>", components: {
|
|
257
153
|
span: React.createElement("span", { className: "return-to-case-text" }),
|
|
258
154
|
button: (React.createElement(Button, { className: "return-to-case-btn", variant: "link", component: "a", onClick: () => props.setIsAIChatMode(false) })),
|
|
259
155
|
} }))) : (React.createElement(Button, { onClick: () => props.setIsAIChatMode(false), variant: "link", className: "return-to-resources-btn" }, t('Back to resources')))))) : (React.createElement(React.Fragment, null,
|
|
260
156
|
React.createElement("section", null,
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
React.createElement(Recommendations, { routeProps: props.routeProps, userSeenRecommendations: props.userSeenRecommendations, userClickedNextonRecommendationsValue: props.userClickedNextonRecommendations, resultsRowRef: props.resultsRowRef })))))) : (shouldShowARHUI() && React.createElement(AskRedHat, { onChatWithAIClick: handleChatWithAIClick })),
|
|
264
|
-
!isVariationA && !isCreatingCase && (React.createElement(OpenShiftClusterId, { className: "push-bottom", "data-tracking-id": "troubleshoot-section-openshift-cluster-id" })),
|
|
157
|
+
shouldShowARHUI() && React.createElement(AskRedHat, { onChatWithAIClick: handleChatWithAIClick }),
|
|
158
|
+
!isCreatingCase && (React.createElement(OpenShiftClusterId, { className: "push-bottom", "data-tracking-id": "troubleshoot-section-openshift-cluster-id" })),
|
|
265
159
|
React.createElement(LoadingDots, { show: topContent.isFetching }),
|
|
266
|
-
|
|
160
|
+
topContent.data.length === 0 && (React.createElement(Card, { id: "card", className: "pf-v6-u-mb-md" },
|
|
267
161
|
React.createElement(CardHeader, { id: "card-title" },
|
|
268
162
|
React.createElement(Trans, { i18nKey: 'i18nKeyPopularSolutions' }, "Red Hat hand picked support articles"),
|
|
269
163
|
React.createElement(Tooltip, { content: React.createElement("div", null,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useIsSectionValid.d.ts","sourceRoot":"","sources":["../../../../src/components/shared/useIsSectionValid.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA0C,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"useIsSectionValid.d.ts","sourceRoot":"","sources":["../../../../src/components/shared/useIsSectionValid.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAuB/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAMnE,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,gBAAgB;;;;;EAmU9D"}
|
|
@@ -18,7 +18,6 @@ import { useCaseSelector } from '../../context/CaseContext';
|
|
|
18
18
|
import { RecommendationStateContext } from '../../context/RecommendationContext';
|
|
19
19
|
import { RouteContext, useRouteDispatchContext } from '../../context/RouteContext';
|
|
20
20
|
import { TCStateContext } from '../../context/TopContentContext';
|
|
21
|
-
import { useAB } from '../../hooks/useAB';
|
|
22
21
|
import { CASE_DEATILS_ENVIRONMENT_LIMIT, CASE_REFERENCE_NUMBER_LIMIT, CONTACT_INFO_24X7_LIMIT, HOSTNAME_LENGTH_LIMIT, ISSUE_SUMMARY_LENGTH_LIMIT, KTQUESTION_MAX_LIMIT, TITLE_SUMMARY_LENGTH_LIMIT, } from '../../reducers/CaseConstNTypes';
|
|
23
22
|
import { isCaseInformationSectionValid, isCaseManagementStateValid, isCaseStateValid, isClusterIDValid, isIdeaCaseStateValid, } from '../../reducers/CaseHelpers';
|
|
24
23
|
import { AppRouteSections } from '../../reducers/RouteConstNTypes';
|
|
@@ -26,8 +25,7 @@ import { setNoValidEntitlement } from '../../reducers/RouteReducer';
|
|
|
26
25
|
import { AttachmentStateContext } from './fileUpload/reducer/AttachmentReducerContext';
|
|
27
26
|
export function useIsSectionValid(sectionName) {
|
|
28
27
|
var _a, _b;
|
|
29
|
-
const {
|
|
30
|
-
const { caseState, caseType, product, version, contactSSOName, accountNumber, summary, hostname, contactInfo24x7, alternateId, selectedAccountDetails, issue, environment, timeFramesAndUrgency, periodicityOfIssue, ssoUsername, manageSupportCases, } = useCaseSelector((state) => ({
|
|
28
|
+
const { caseState, caseType, product, version, contactSSOName, accountNumber, summary, hostname, contactInfo24x7, alternateId, selectedAccountDetails, issue, environment, timeFramesAndUrgency, periodicityOfIssue, ABTestVariation, ssoUsername, manageSupportCases, } = useCaseSelector((state) => ({
|
|
31
29
|
caseState: state,
|
|
32
30
|
caseType: state.caseDetails.caseType,
|
|
33
31
|
product: state.caseDetails.product,
|
|
@@ -43,6 +41,7 @@ export function useIsSectionValid(sectionName) {
|
|
|
43
41
|
environment: state.caseDetails.environment,
|
|
44
42
|
timeFramesAndUrgency: state.caseDetails.timeFramesAndUrgency,
|
|
45
43
|
periodicityOfIssue: state.caseDetails.periodicityOfIssue,
|
|
44
|
+
ABTestVariation: state.ABTestVariation,
|
|
46
45
|
ssoUsername: state.selectedOwner.data.ssoUsername,
|
|
47
46
|
manageSupportCases: state.selectedOwner.data.manageSupportCases,
|
|
48
47
|
}), isEqual);
|
|
@@ -67,8 +66,10 @@ export function useIsSectionValid(sectionName) {
|
|
|
67
66
|
fetchContactDetails();
|
|
68
67
|
}, [ssoUsername, routeDispatch]);
|
|
69
68
|
//&seSessionId=8e8960ac-680b-443e-bf67-9e13f2acd64e
|
|
69
|
+
const isATestvariation = ABTestVariation === 'A';
|
|
70
|
+
const isBTestvariation = ABTestVariation === 'B' || isEmpty(ABTestVariation);
|
|
70
71
|
const { routeState: { isCaseCreate }, } = useContext(RouteContext);
|
|
71
|
-
const { globalMetadataState: { allProducts,
|
|
72
|
+
const { globalMetadataState: { allProducts, loggedInUserRights }, } = useContext(GlobalMetadataStateContext);
|
|
72
73
|
const { topContentState: { topContent }, } = useContext(TCStateContext);
|
|
73
74
|
const { recommendationState } = useContext(RecommendationStateContext);
|
|
74
75
|
const isEntitledProduct = (_b = find((_a = allProducts === null || allProducts === void 0 ? void 0 : allProducts.data) === null || _a === void 0 ? void 0 : _a.productsResult, (p) => p.product === caseState.caseDetails.product)) === null || _b === void 0 ? void 0 : _b.isEntitledProduct;
|
|
@@ -91,64 +92,102 @@ export function useIsSectionValid(sectionName) {
|
|
|
91
92
|
!isEmpty(contactSSOName) &&
|
|
92
93
|
!selectedAccountDetails.data.subscriptionAbuse &&
|
|
93
94
|
(manageSupportCases !== null && manageSupportCases !== void 0 ? manageSupportCases : true) &&
|
|
94
|
-
(isEntitlement !== null && isEntitlement !== void 0 ? isEntitlement : true)
|
|
95
|
-
|
|
96
|
-
!isEmpty(version);
|
|
95
|
+
(isEntitlement !== null && isEntitlement !== void 0 ? isEntitlement : true);
|
|
96
|
+
if (isATestvariation) {
|
|
97
|
+
isValid = isValid && !isEmpty(product) && !isEmpty(version);
|
|
98
|
+
}
|
|
97
99
|
return isValid;
|
|
98
100
|
};
|
|
99
101
|
const isSummarizeSectionValid = () => {
|
|
100
|
-
|
|
101
|
-
!allProducts.
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
102
|
+
if (isBTestvariation) {
|
|
103
|
+
let isValid = !allProducts.isFetching &&
|
|
104
|
+
!allProducts.isError &&
|
|
105
|
+
!topContent.isFetching &&
|
|
106
|
+
!recommendationState.isLoadingRecommendations &&
|
|
107
|
+
(summary === null || summary === void 0 ? void 0 : summary.length) <= TITLE_SUMMARY_LENGTH_LIMIT &&
|
|
108
|
+
(issue === null || issue === void 0 ? void 0 : issue.length) <= ISSUE_SUMMARY_LENGTH_LIMIT &&
|
|
109
|
+
!isEmpty(product) &&
|
|
110
|
+
!isEmpty(version) &&
|
|
111
|
+
!isEmpty(summary) &&
|
|
112
|
+
!isEmpty(issue);
|
|
113
|
+
return isValid;
|
|
114
|
+
}
|
|
115
|
+
if (isATestvariation) {
|
|
116
|
+
let isValid = !allProducts.isFetching &&
|
|
117
|
+
!allProducts.isError &&
|
|
118
|
+
!topContent.isFetching &&
|
|
119
|
+
!recommendationState.isLoadingRecommendations &&
|
|
120
|
+
(summary === null || summary === void 0 ? void 0 : summary.length) <= TITLE_SUMMARY_LENGTH_LIMIT &&
|
|
121
|
+
(issue === null || issue === void 0 ? void 0 : issue.length) <= ISSUE_SUMMARY_LENGTH_LIMIT &&
|
|
122
|
+
!isEmpty(summary) &&
|
|
123
|
+
!isEmpty(issue);
|
|
124
|
+
return isValid;
|
|
125
|
+
}
|
|
108
126
|
if (isCaseCreate) {
|
|
109
127
|
//because on the summarize page for troubleshoot flow we have only product version and owner
|
|
110
|
-
isValid =
|
|
111
|
-
!allProducts.
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
128
|
+
let isValid = !allProducts.isFetching &&
|
|
129
|
+
!allProducts.isError &&
|
|
130
|
+
// !topContent.isFetching &&
|
|
131
|
+
// !recommendationState.isLoadingRecommendations &&
|
|
132
|
+
// summary!?.length <= TITLE_SUMMARY_LENGTH_LIMIT &&
|
|
133
|
+
// issue!?.length <= ISSUE_SUMMARY_LENGTH_LIMIT &&
|
|
134
|
+
!isEmpty(product) &&
|
|
135
|
+
!isEmpty(accountNumber) &&
|
|
136
|
+
!isEmpty(contactSSOName) &&
|
|
137
|
+
!isEmpty(version);
|
|
138
|
+
return isValid;
|
|
117
139
|
}
|
|
118
140
|
else if (!isCaseCreate) {
|
|
119
141
|
return !isEmpty(product) && !isEmpty(version) && !isEmpty(accountNumber) && !isEmpty(contactSSOName);
|
|
120
142
|
}
|
|
121
|
-
return isValid;
|
|
122
143
|
};
|
|
123
144
|
const isCaseConfigurationSectionValid = () => {
|
|
124
145
|
const hasContactInfo24x7ValidLength = contactInfo24x7
|
|
125
146
|
? (contactInfo24x7 === null || contactInfo24x7 === void 0 ? void 0 : contactInfo24x7.length) <= CONTACT_INFO_24X7_LIMIT
|
|
126
147
|
: true;
|
|
127
148
|
const hasAlternateCaseIdValidLength = alternateId ? (alternateId === null || alternateId === void 0 ? void 0 : alternateId.length) <= CASE_REFERENCE_NUMBER_LIMIT : true;
|
|
128
|
-
return (isCaseManagementStateValid(caseState,
|
|
149
|
+
return (isCaseManagementStateValid(caseState, loggedInUserRights) &&
|
|
129
150
|
hasContactInfo24x7ValidLength &&
|
|
130
151
|
hasAlternateCaseIdValidLength);
|
|
131
152
|
};
|
|
132
153
|
const isResourcesSectionValid = () => {
|
|
133
|
-
var _a;
|
|
154
|
+
var _a, _b;
|
|
155
|
+
if (isBTestvariation) {
|
|
156
|
+
//if we are in the new experience and user is troubleshoot we give them those validity fields
|
|
157
|
+
if (!isCaseCreate) {
|
|
158
|
+
let isValid = !allProducts.isFetching &&
|
|
159
|
+
!allProducts.isError &&
|
|
160
|
+
!topContent.isFetching &&
|
|
161
|
+
!recommendationState.isLoadingRecommendations &&
|
|
162
|
+
(summary === null || summary === void 0 ? void 0 : summary.length) <= TITLE_SUMMARY_LENGTH_LIMIT &&
|
|
163
|
+
(issue === null || issue === void 0 ? void 0 : issue.length) <= ISSUE_SUMMARY_LENGTH_LIMIT &&
|
|
164
|
+
!isEmpty(product) &&
|
|
165
|
+
!isEmpty(version) &&
|
|
166
|
+
!isEmpty(summary) &&
|
|
167
|
+
!isEmpty(issue) &&
|
|
168
|
+
isEntitlement === true &&
|
|
169
|
+
isClusterIDValid(caseState, (_a = allProducts.data) === null || _a === void 0 ? void 0 : _a.productsResult);
|
|
170
|
+
return isValid;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
134
173
|
// don't check for entitled product if user is on search intent flow
|
|
135
174
|
const isEntitledProductLocal = isSearchIntent ? true : isEntitledProduct;
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
175
|
+
return (!recommendationState.isLoadingRecommendations &&
|
|
176
|
+
isEntitledProductLocal &&
|
|
177
|
+
isClusterIDValid(caseState, (_b = allProducts.data) === null || _b === void 0 ? void 0 : _b.productsResult));
|
|
139
178
|
};
|
|
140
179
|
const isReviewSectionValid = () => {
|
|
141
180
|
var _a;
|
|
142
181
|
return (isEntitledProduct &&
|
|
143
|
-
isCaseStateValid(caseState,
|
|
182
|
+
isCaseStateValid(caseState, loggedInUserRights) &&
|
|
144
183
|
isClusterIDValid(caseState, (_a = allProducts.data) === null || _a === void 0 ? void 0 : _a.productsResult) &&
|
|
145
184
|
isSummarizeSectionValid() &&
|
|
146
185
|
isAdditionalInformationSectionValidLocal());
|
|
147
186
|
};
|
|
148
187
|
const isDescribeIdeaSectionValid = () => {
|
|
149
|
-
return (isCaseManagementStateValid(caseState,
|
|
188
|
+
return (isCaseManagementStateValid(caseState, loggedInUserRights) &&
|
|
150
189
|
isEntitledProduct &&
|
|
151
|
-
isIdeaCaseStateValid(caseState,
|
|
190
|
+
isIdeaCaseStateValid(caseState, loggedInUserRights) &&
|
|
152
191
|
checkUnallowedFiles());
|
|
153
192
|
};
|
|
154
193
|
const isAdditionalInformationSectionValidLocal = () => {
|
|
@@ -156,7 +195,7 @@ export function useIsSectionValid(sectionName) {
|
|
|
156
195
|
const hostnameIsValid = hostname ? (hostname === null || hostname === void 0 ? void 0 : hostname.length) <= HOSTNAME_LENGTH_LIMIT : true;
|
|
157
196
|
return (!caseState.hasInvalidEntitlements &&
|
|
158
197
|
isClusterIDValid(caseState, (_a = allProducts.data) === null || _a === void 0 ? void 0 : _a.productsResult) &&
|
|
159
|
-
isCaseInformationSectionValid(caseState,
|
|
198
|
+
isCaseInformationSectionValid(caseState, loggedInUserRights) &&
|
|
160
199
|
hostnameIsValid &&
|
|
161
200
|
environment.length <= CASE_DEATILS_ENVIRONMENT_LIMIT &&
|
|
162
201
|
timeFramesAndUrgency.length <= KTQUESTION_MAX_LIMIT &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WizardAside.d.ts","sourceRoot":"","sources":["../../../../src/components/wizardLayout/WizardAside.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"WizardAside.d.ts","sourceRoot":"","sources":["../../../../src/components/wizardLayout/WizardAside.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAIvD,OAAO,EAGH,eAAe,EAKlB,MAAM,iCAAiC,CAAC;AAQzC,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACjD,2BAA2B,EAAE,OAAO,CAAC;CACxC;AAED,iBAAS,WAAW,CAAC,KAAK,EAAE,MAAM,qBAuDjC;kBAvDQ,WAAW;;;AAyDpB,eAAe,WAAW,CAAC"}
|
|
@@ -5,9 +5,7 @@ import isUndefined from 'lodash/isUndefined';
|
|
|
5
5
|
import React, { useContext } from 'react';
|
|
6
6
|
import { useCaseSelector } from '../../context/CaseContext';
|
|
7
7
|
import { RouteContext } from '../../context/RouteContext';
|
|
8
|
-
import {
|
|
9
|
-
import { useAB } from '../../hooks/useAB';
|
|
10
|
-
import { AppRouteSections, hideFileUploadSidebarWidgetSections, showSideBarClusterIdRuleWidgetSections, showSideBarEARuleWidgetSectionsExperienceA, showSideBarFileRecommendationSections, } from '../../reducers/RouteConstNTypes';
|
|
8
|
+
import { AppRouteSections, hideFileUploadSidebarWidgetSections, showSideBarClusterIdRuleWidgetSections, showSideBarEARuleWidgetSections, showSideBarEARuleWidgetSectionsExperienceA, showSideBarFileRecommendationSections, } from '../../reducers/RouteConstNTypes';
|
|
11
9
|
import { FileDiag } from '../CaseInformation/FileDiag';
|
|
12
10
|
import { CveSidebar } from '../Cve/CveSidebar';
|
|
13
11
|
import { AsideResults } from '../Recommendations/AsideResults';
|
|
@@ -15,34 +13,28 @@ import ClusterRecommendations from '../Recommendations/ClusterRecommendations';
|
|
|
15
13
|
import { EARuleWidget } from '../Recommendations/EARules/EARuleWidget';
|
|
16
14
|
import InsightsResults from '../Recommendations/InsightsResults';
|
|
17
15
|
import { SessionRestore } from '../SessionRestore';
|
|
18
|
-
import TopContentSidebar from '../Suggestions/TopContentSidebar';
|
|
19
16
|
const defaultProps = {};
|
|
20
17
|
function WizardAside(props) {
|
|
21
|
-
const { isVariationA } = useAB();
|
|
22
18
|
const { routeState: { activeSection, isCaseCreate }, } = useContext(RouteContext);
|
|
23
|
-
const { topContentState: { topContent }, } = useContext(TCStateContext);
|
|
24
19
|
const canAddAttachments = ability.can(resourceActions.PATCH, resources.CASE_CREATE, CaseListFields.ATTACHMENTS);
|
|
25
|
-
const { isCreatingCase, caseType, isCveModalOpened } = useCaseSelector((state) => ({
|
|
20
|
+
const { isCreatingCase, caseType, isCveModalOpened, ABTestVariation } = useCaseSelector((state) => ({
|
|
26
21
|
isCreatingCase: state.isCreatingCase,
|
|
27
22
|
caseType: state.caseDetails.caseType,
|
|
28
23
|
isCveModalOpened: state.isCveModalOpened,
|
|
24
|
+
ABTestVariation: state.ABTestVariation,
|
|
29
25
|
}), isEqual);
|
|
26
|
+
const isATestvariation = ABTestVariation === 'A';
|
|
30
27
|
const isIdea = caseType === PreviousCaseTypes.FEATURE_ENHANCEMENT;
|
|
31
28
|
const canUseSessionManagement = ability.can(resourceActions.CREATE, resources.SESSION_TRACKING);
|
|
32
29
|
const canShowFileUploadWidget = () => canAddAttachments &&
|
|
33
30
|
!props.isAttachmentUploadModalOpen &&
|
|
34
31
|
!isUndefined(activeSection) &&
|
|
35
32
|
!hideFileUploadSidebarWidgetSections.includes(activeSection);
|
|
36
|
-
const canShowEARuleWidget =
|
|
33
|
+
const canShowEARuleWidget = isATestvariation
|
|
37
34
|
? showSideBarEARuleWidgetSectionsExperienceA.includes(activeSection)
|
|
38
|
-
:
|
|
39
|
-
const canShowClusterIdReportWidget = activeSection
|
|
40
|
-
|
|
41
|
-
: false;
|
|
42
|
-
const canShowFileRecommendationSectionsWidget = activeSection
|
|
43
|
-
? showSideBarFileRecommendationSections.includes(activeSection)
|
|
44
|
-
: false;
|
|
45
|
-
const showTopContentSidebar = isVariationA && activeSection === AppRouteSections.RESOURCES && topContent.data.length === 0;
|
|
35
|
+
: showSideBarEARuleWidgetSections.includes(activeSection);
|
|
36
|
+
const canShowClusterIdReportWidget = showSideBarClusterIdRuleWidgetSections.includes(activeSection);
|
|
37
|
+
const canShowFileRecommendationSectionsWidget = showSideBarFileRecommendationSections.includes(activeSection);
|
|
46
38
|
return (React.createElement("aside", null,
|
|
47
39
|
React.createElement("section", { className: "grid-aside-content" },
|
|
48
40
|
canUseSessionManagement && !isCreatingCase && activeSection !== AppRouteSections.SUBMIT_CASE && (React.createElement(SessionRestore, { routeProps: props.routeProps })),
|
|
@@ -54,8 +46,7 @@ function WizardAside(props) {
|
|
|
54
46
|
canShowEARuleWidget && React.createElement(EARuleWidget, null),
|
|
55
47
|
!(isIdea && activeSection === 'submit-case') && (React.createElement(AsideResults, { routeProps: props.routeProps, className: "pf-v6-u-mb-md" })),
|
|
56
48
|
canShowFileRecommendationSectionsWidget && React.createElement(InsightsResults, { isDisplayOnMain: true }),
|
|
57
|
-
React.createElement(ClusterRecommendations, { showClusterRecommendationsList: canShowClusterIdReportWidget, className: "pf-v6-u-mb-md" })
|
|
58
|
-
showTopContentSidebar && React.createElement(TopContentSidebar, null))));
|
|
49
|
+
React.createElement(ClusterRecommendations, { showClusterRecommendationsList: canShowClusterIdReportWidget, className: "pf-v6-u-mb-md" }))));
|
|
59
50
|
}
|
|
60
51
|
WizardAside.defaultProps = defaultProps;
|
|
61
52
|
export default WizardAside;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WizardMain.d.ts","sourceRoot":"","sources":["../../../../src/components/wizardLayout/WizardMain.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"WizardMain.d.ts","sourceRoot":"","sources":["../../../../src/components/wizardLayout/WizardMain.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAqD,MAAM,OAAO,CAAC;AAE3G,OAAO,EAAS,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAW9D,OAAO,EAAoB,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAcpF,eAAO,MAAM,iBAAiB,aAAc,MAAM,KAAG,MAEpD,CAAC;AAEF,eAAO,MAAM,sBAAsB,kBAAmB,MAAM,YAAY,MAAM,QAAQ,MAAM,KAAG,MAqB9F,CAAC;AAGF,eAAO,MAAM,kBAAkB,kBACZ,MAAM,WACZ,MAAM,GAAG,SAAS,WAClB,MAAM,GAAG,SAAS,WAClB,MAAM,GAAG,SAAS,SACpB,MAAM,GAAG,SAAS,YACf,MAAM,QACV,MAAM,KACb,MAwCF,CAAC;AACF,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACjD,qBAAqB,EAAE,CAAC,cAAc,EAAE,OAAO,KAAK,IAAI,CAAC;IACzD,mBAAmB,EAAE,CAAC,gCAAgC,EAAE,OAAO,KAAK,IAAI,CAAC;IACzE,YAAY,EAAE,OAAO,CAAC;IACtB,eAAe,EAAE,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IACnD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,sBAAsB,CAAC,EAAE,OAAO,CAAC;CACpC;AAED,iBAAS,UAAU,CAAC,KAAK,EAAE,MAAM,qBA4WhC;AACD,eAAe,UAAU,CAAC"}
|