@rh-support/troubleshoot 2.1.17 → 2.1.19
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/CaseEditView/CaseDetailsAside.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/CaseDetailsAside.js +6 -15
- package/lib/esm/components/CaseEditView/RequestRemoteSession/index.d.ts +0 -1
- package/lib/esm/components/CaseEditView/RequestRemoteSession/index.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/RequestRemoteSession/index.js +0 -1
- package/lib/esm/components/CaseInformation/FileDiag.d.ts +5 -1
- package/lib/esm/components/CaseInformation/FileDiag.d.ts.map +1 -1
- package/lib/esm/components/CaseInformation/FileDiag.js +2 -2
- package/lib/esm/components/CaseManagement/CaseManagement.d.ts.map +1 -1
- package/lib/esm/components/CaseManagement/CaseManagement.js +2 -15
- package/lib/esm/components/Recommendations/CriticalSolutionsToast.d.ts.map +1 -1
- package/lib/esm/components/Recommendations/CriticalSolutionsToast.js +5 -2
- package/lib/esm/components/Recommendations/RecommendationFeedbackModal.js +1 -1
- package/lib/esm/components/Recommendations/RulesModal.d.ts.map +1 -1
- package/lib/esm/components/Recommendations/RulesModal.js +25 -9
- package/lib/esm/components/Review/Review.d.ts.map +1 -1
- package/lib/esm/components/Review/Review.js +2 -12
- package/lib/esm/components/SubmitCase/SubmitCase.d.ts.map +1 -1
- package/lib/esm/components/SubmitCase/SubmitCase.js +4 -9
- package/lib/esm/components/TroubleshootSection/TroubleshootSection.d.ts.map +1 -1
- package/lib/esm/components/TroubleshootSection/TroubleshootSection.js +16 -11
- package/lib/esm/components/wizardLayout/WizardAside.js +1 -1
- package/lib/esm/components/wizardLayout/WizardNavigation.d.ts.map +1 -1
- package/lib/esm/components/wizardLayout/WizardNavigation.js +50 -4
- package/lib/esm/reducers/CaseConstNTypes.d.ts +1 -0
- package/lib/esm/reducers/CaseConstNTypes.d.ts.map +1 -1
- package/lib/esm/reducers/CaseConstNTypes.js +1 -1
- package/lib/esm/reducers/CaseHelpers.d.ts.map +1 -1
- package/lib/esm/reducers/CaseHelpers.js +2 -5
- package/lib/esm/reducers/CaseReducer.d.ts +0 -1
- package/lib/esm/reducers/CaseReducer.d.ts.map +1 -1
- package/lib/esm/reducers/CaseReducer.js +1 -21
- package/lib/esm/scss/_main.scss +13 -0
- package/lib/esm/scss/_pf4-overrides.scss +24 -1
- package/package.json +6 -6
- package/lib/esm/components/CaseEditView/RequestRemoteSession/ESSRemoteSession.d.ts +0 -12
- package/lib/esm/components/CaseEditView/RequestRemoteSession/ESSRemoteSession.d.ts.map +0 -1
- package/lib/esm/components/CaseEditView/RequestRemoteSession/ESSRemoteSession.js +0 -48
- package/lib/esm/components/CaseEditView/RequestRemoteSession/ESSRemoteSessionModal.d.ts +0 -15
- package/lib/esm/components/CaseEditView/RequestRemoteSession/ESSRemoteSessionModal.d.ts.map +0 -1
- package/lib/esm/components/CaseEditView/RequestRemoteSession/ESSRemoteSessionModal.js +0 -108
- package/lib/esm/components/CaseEditView/RequestRemoteSession/NewEssTermsModal.d.ts +0 -17
- package/lib/esm/components/CaseEditView/RequestRemoteSession/NewEssTermsModal.d.ts.map +0 -1
- package/lib/esm/components/CaseEditView/RequestRemoteSession/NewEssTermsModal.js +0 -181
- package/lib/esm/components/CaseManagement/ESSRemoteSessionCheckBox.d.ts +0 -3
- package/lib/esm/components/CaseManagement/ESSRemoteSessionCheckBox.d.ts.map +0 -1
- package/lib/esm/components/CaseManagement/ESSRemoteSessionCheckBox.js +0 -167
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CaseDetailsAside.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseEditView/CaseDetailsAside.tsx"],"names":[],"mappings":"AA8BA,UAAU,MAAM;IACZ,UAAU,EAAE,MAAM,CAAC;CACtB;AAMD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"CaseDetailsAside.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseEditView/CaseDetailsAside.tsx"],"names":[],"mappings":"AA8BA,UAAU,MAAM;IACZ,UAAU,EAAE,MAAM,CAAC;CACtB;AAMD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,eAiU7C"}
|
|
@@ -17,7 +17,7 @@ import TrendUpIcon from '@patternfly/react-icons/dist/js/icons/trend-up-icon';
|
|
|
17
17
|
import { ErrorBoundary, ToastNotification, useBreakpoint, useForceUpdate } from '@rh-support/components';
|
|
18
18
|
import { GlobalMetadataDispatchContext, toggleViewAsCustomerFlag, useGlobalStateContext, useUserPreferences, } from '@rh-support/react-context';
|
|
19
19
|
import { ability, CaseDetailsFields, resourceActions, resources } from '@rh-support/user-permissions';
|
|
20
|
-
import {
|
|
20
|
+
import { scrollIntoView } from '@rh-support/utils';
|
|
21
21
|
import isEmpty from 'lodash/isEmpty';
|
|
22
22
|
import isEqual from 'lodash/isEqual';
|
|
23
23
|
import React, { useContext, useEffect, useRef, useState } from 'react';
|
|
@@ -29,20 +29,17 @@ import { useRecommendationStateContext } from '../../context/RecommendationConte
|
|
|
29
29
|
import { ActiveCustomerEscalation } from './ActiveCustomerEscalation';
|
|
30
30
|
import { CaseSolutions } from './CaseSolutions';
|
|
31
31
|
import { PDFContext } from './PDFContainer';
|
|
32
|
-
import {
|
|
32
|
+
import { RemoteSessionAgreement } from './RequestRemoteSession';
|
|
33
33
|
export function CaseDetailsAside(props) {
|
|
34
|
-
var _a
|
|
34
|
+
var _a;
|
|
35
35
|
const { t } = useTranslation();
|
|
36
|
-
const { severity, status, isFetchingCaseDetails, isFetchingCaseDetailsError, acceptedRemoteSessionTerms
|
|
36
|
+
const { severity, status, isFetchingCaseDetails, isFetchingCaseDetailsError, acceptedRemoteSessionTerms } = useCaseSelector((state) => ({
|
|
37
37
|
severity: state.caseDetails.severity,
|
|
38
38
|
status: state.caseDetails.status,
|
|
39
39
|
isFetchingCaseDetails: state.isFetchingCaseDetails,
|
|
40
40
|
isFetchingCaseDetailsError: state.isFetchingCaseDetailsError,
|
|
41
41
|
acceptedRemoteSessionTerms: state.caseDetails.remoteSessionTermsAcked,
|
|
42
|
-
screenSessionRequested: state.caseDetails.screenSessionRequested,
|
|
43
|
-
product: state.caseDetails.product,
|
|
44
42
|
}), isEqual);
|
|
45
|
-
const selectedProduct = product;
|
|
46
43
|
const { caseDetailsPageState: { caseEscalations }, } = useCaseDetailsPageStateContext();
|
|
47
44
|
const isCreateRMEVisible = (caseEscalations.data || []).length === 0 || caseEscalations.data.every((item) => item.status === 'Closed');
|
|
48
45
|
const { recommendationState: { isLoadingRecommendations, allDocs }, } = useRecommendationStateContext();
|
|
@@ -61,7 +58,7 @@ export function CaseDetailsAside(props) {
|
|
|
61
58
|
const isXLScreen = breakPoint.xl;
|
|
62
59
|
const toggleCustomerViewRef = useRef(null);
|
|
63
60
|
const isFirstMountRef = useRef(true);
|
|
64
|
-
const { globalMetadataState: { navBarRef, viewAsCustomer, loggedInUsersAccount, loggedInUserRights
|
|
61
|
+
const { globalMetadataState: { navBarRef, viewAsCustomer, loggedInUsersAccount, loggedInUserRights }, } = useGlobalStateContext();
|
|
65
62
|
const isSecureSupportAccount = loggedInUsersAccount.data.secureSupport;
|
|
66
63
|
// To enable RSA Section for external users
|
|
67
64
|
const isExternal = loggedInUserRights.data.isExternal();
|
|
@@ -166,8 +163,6 @@ export function CaseDetailsAside(props) {
|
|
|
166
163
|
return t('View internal information available to Red Hat associates only.');
|
|
167
164
|
}
|
|
168
165
|
};
|
|
169
|
-
// To check if the user is ESS Customer and Product has ESS Support
|
|
170
|
-
const isESSCustomer = isSpecialSupportOfferingEnabled((_b = allProducts.data) === null || _b === void 0 ? void 0 : _b.productsResult, selectedProduct);
|
|
171
166
|
return (React.createElement("aside", { className: `grid-aside ${isSideBarExpanded ? '' : 'sidebar-collapsed'} ` },
|
|
172
167
|
React.createElement("pfe-collapse-toggle", { "aria-controls": "case-details-aside-content", onClick: onToggleAside }, isSideBarExpanded ? (React.createElement("div", { className: `sidebar-header ${isExportingPDF ? 'hide-in-pdf' : ''}` },
|
|
173
168
|
React.createElement(Button, { variant: "link", isInline: true, title: t('Collapse sidebar') },
|
|
@@ -206,10 +201,6 @@ export function CaseDetailsAside(props) {
|
|
|
206
201
|
React.createElement(CaseSolutions, { caseNumber: caseNumber, ref: topSolutionsRef, isSecureSupportAccount: isSecureSupportAccount })),
|
|
207
202
|
!caseEscalations.isFetching && canViewACESection && (React.createElement(ErrorBoundary, { errorMsgInfo: { message: t('There was an error loading customer escalation section') } },
|
|
208
203
|
React.createElement(ActiveCustomerEscalation, { caseNumber: caseNumber, caseSeverity: severity, caseStatus: status, ref: createEscalationRef }))),
|
|
209
|
-
isExternal &&
|
|
210
|
-
message: t('There was an error loading requesting remote session section'),
|
|
211
|
-
} },
|
|
212
|
-
React.createElement(ESSRemoteSession, { screenSessionRequested: screenSessionRequested, remoteSessionTermsAcked: acceptedRemoteSessionTerms, caseNumber: caseNumber, caseSeverity: severity, caseStatus: status, ref: createEscalationRef, readOnly: canReadCase }))),
|
|
213
|
-
isExternal && !isESSCustomer && (React.createElement(ErrorBoundary, { errorMsgInfo: { message: t('There was an error loading remote session agreement section') } },
|
|
204
|
+
isExternal && (React.createElement(ErrorBoundary, { errorMsgInfo: { message: t('There was an error loading remote session agreement section') } },
|
|
214
205
|
React.createElement(RemoteSessionAgreement, { caseNumber: caseNumber, caseSeverity: severity, caseStatus: status, ref: createEscalationRef, acceptedRemoteSessionTerms: acceptedRemoteSessionTerms, readOnly: canReadCase })))))));
|
|
215
206
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseEditView/RequestRemoteSession/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseEditView/RequestRemoteSession/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileDiag.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/FileDiag.tsx"],"names":[],"mappings":"AAYA,wBAAgB,QAAQ,
|
|
1
|
+
{"version":3,"file":"FileDiag.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/FileDiag.tsx"],"names":[],"mappings":"AAYA,UAAU,MAAM;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,eAiCrC"}
|
|
@@ -8,7 +8,7 @@ import { RulesStateContext } from '../../context/RulesContext';
|
|
|
8
8
|
import { SessionRestoreStateContext } from '../../context/SessionRestoreContext';
|
|
9
9
|
import FileEARule, { getValidAttachmentRules } from '../ImproveCase/FileEARule';
|
|
10
10
|
import { WidgetFileUploader } from '../shared/fileUpload/WidgetFileUploader';
|
|
11
|
-
export function FileDiag() {
|
|
11
|
+
export function FileDiag(props) {
|
|
12
12
|
const { sessionRestore: { activeSessionId }, } = useContext(SessionRestoreStateContext);
|
|
13
13
|
const canAddAttachments = ability.can(resourceActions.PATCH, resources.CASE_CREATE, CaseListFields.ATTACHMENTS);
|
|
14
14
|
const { globalMetadataState: { loggedInUsersAccount }, } = useContext(GlobalMetadataStateContext);
|
|
@@ -19,5 +19,5 @@ export function FileDiag() {
|
|
|
19
19
|
const isIdea = caseType === PreviousCaseTypes.FEATURE_ENHANCEMENT;
|
|
20
20
|
if (!canAddAttachments)
|
|
21
21
|
return null;
|
|
22
|
-
return (React.createElement(WidgetFileUploader, { idToUploadTo: activeSessionId, isPrivate: false, needsAnalyzing: isIdea ? false : true, isSessionId: true, isSecureSupport: loggedInUsersAccount.data.secureSupport, autoUploadOnSelect: loggedInUsersAccount.data.secureSupport ? false : true, helperText: getValidAttachmentRules(rulesState.EARules.rules).length > 0 ? React.createElement(FileEARule, null) : null, isIdea: isIdea }));
|
|
22
|
+
return (React.createElement(WidgetFileUploader, { className: props.className, idToUploadTo: activeSessionId, isPrivate: false, needsAnalyzing: isIdea ? false : true, isSessionId: true, isSecureSupport: loggedInUsersAccount.data.secureSupport, autoUploadOnSelect: loggedInUsersAccount.data.secureSupport ? false : true, helperText: getValidAttachmentRules(rulesState.EARules.rules).length > 0 ? React.createElement(FileEARule, null) : null, isIdea: isIdea }));
|
|
23
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CaseManagement.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseManagement/CaseManagement.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CaseManagement.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseManagement/CaseManagement.tsx"],"names":[],"mappings":"AAiBA,MAAM,WAAW,MAAM;CAAG;AAC1B,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,KAAK,EAAE,MAAM,eA4BnD"}
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import { Flex, FlexItem } from '@patternfly/react-core';
|
|
2
|
-
import { useGlobalStateContext } from '@rh-support/react-context';
|
|
3
|
-
import { isSpecialSupportOfferingEnabled } from '@rh-support/utils';
|
|
4
|
-
import { isEqual } from 'lodash';
|
|
5
2
|
import React from 'react';
|
|
6
|
-
import { useCaseDispatch
|
|
3
|
+
import { useCaseDispatch } from '../../context/CaseContext';
|
|
7
4
|
import { setCaseDetails } from '../../reducers/CaseReducer';
|
|
8
5
|
import CaseGroup from '../CaseInformation/CaseGroup';
|
|
9
6
|
import { ContactPhoneNumber } from '../CaseInformation/ContactPhoneNumber';
|
|
@@ -13,23 +10,14 @@ import Severity from '../CaseInformation/Severity';
|
|
|
13
10
|
import SupportLevel from '../CaseInformation/SupportLevel';
|
|
14
11
|
import CaseLanguageSelector from './CaseLanguageSelector';
|
|
15
12
|
import { Cep } from './Cep';
|
|
16
|
-
import ESSRemoteSessionCheckBox from './ESSRemoteSessionCheckBox';
|
|
17
13
|
import OpenReferenceNumber from './OpenReferenceNumber';
|
|
18
14
|
import { RHAssociatesSelector } from './RHAssociatesSelector';
|
|
19
15
|
import CaseContactSelector from './SendNotifications/CaseContactSelector';
|
|
20
16
|
export default function CaseManagement(props) {
|
|
21
|
-
var _a;
|
|
22
17
|
const caseDispatch = useCaseDispatch();
|
|
23
18
|
const onSeverityChange = (payload) => {
|
|
24
19
|
setCaseDetails(caseDispatch, payload);
|
|
25
20
|
};
|
|
26
|
-
const { globalMetadataState: { allProducts }, } = useGlobalStateContext();
|
|
27
|
-
const { product } = useCaseSelector((state) => ({
|
|
28
|
-
product: state.caseDetails.product,
|
|
29
|
-
}), isEqual);
|
|
30
|
-
const selectedProduct = product;
|
|
31
|
-
// To check if the user is ESS Customer and Product has ESS Support
|
|
32
|
-
const isESSCustomer = isSpecialSupportOfferingEnabled((_a = allProducts.data) === null || _a === void 0 ? void 0 : _a.productsResult, selectedProduct);
|
|
33
21
|
return (React.createElement("form", null,
|
|
34
22
|
React.createElement(SupportLevel, null),
|
|
35
23
|
React.createElement(Flex, { direction: { default: 'column', '2xl': 'row' } },
|
|
@@ -44,6 +32,5 @@ export default function CaseManagement(props) {
|
|
|
44
32
|
React.createElement(CaseContactSelector, null),
|
|
45
33
|
React.createElement(RHAssociatesSelector, null),
|
|
46
34
|
React.createElement(OpenReferenceNumber, { inlineEditable: false, hideSaveCancel: true }),
|
|
47
|
-
React.createElement(Cep, null)
|
|
48
|
-
isESSCustomer && React.createElement(ESSRemoteSessionCheckBox, null)));
|
|
35
|
+
React.createElement(Cep, null)));
|
|
49
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CriticalSolutionsToast.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/CriticalSolutionsToast.tsx"],"names":[],"mappings":"AAGA,OAAc,EAAE,EAAE,EAAmC,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"CriticalSolutionsToast.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/CriticalSolutionsToast.tsx"],"names":[],"mappings":"AAGA,OAAc,EAAE,EAAE,EAAmC,MAAM,OAAO,CAAC;AAOnE,UAAU,MAAM;IACZ,UAAU,EAAE,MAAM,IAAI,CAAC;CAC1B;AAED,QAAA,MAAM,sBAAsB,EAAE,EAAE,CAAC,MAAM,CA4DtC,CAAC;AAEF,eAAe,sBAAsB,CAAC"}
|
|
@@ -3,14 +3,16 @@ import { PreviousCaseTypes } from '@rh-support/utils';
|
|
|
3
3
|
import isEqual from 'lodash/isEqual';
|
|
4
4
|
import React, { useContext, useEffect, useState } from 'react';
|
|
5
5
|
import { Trans, useTranslation } from 'react-i18next';
|
|
6
|
-
import { useCaseSelector } from '../../context/CaseContext';
|
|
6
|
+
import { useCaseDispatch, useCaseSelector } from '../../context/CaseContext';
|
|
7
7
|
import { RulesDispatchContext, RulesStateContext } from '../../context/RulesContext';
|
|
8
|
+
import { setCaseState } from '../../reducers/CaseReducer';
|
|
8
9
|
import { RulesReducerConstants } from '../../reducers/RulesReducer';
|
|
9
10
|
const CriticalSolutionsToast = (props) => {
|
|
10
11
|
const { t } = useTranslation();
|
|
11
12
|
const [showNotification, setShowNotification] = useState(false);
|
|
12
13
|
const { rulesState } = useContext(RulesStateContext);
|
|
13
14
|
const rulesDispatch = useContext(RulesDispatchContext);
|
|
15
|
+
const caseDispatch = useCaseDispatch();
|
|
14
16
|
const { caseType } = useCaseSelector((state) => ({
|
|
15
17
|
caseType: state.caseDetails.caseType,
|
|
16
18
|
}), isEqual);
|
|
@@ -35,13 +37,14 @@ const CriticalSolutionsToast = (props) => {
|
|
|
35
37
|
});
|
|
36
38
|
};
|
|
37
39
|
const viewCriticalSolution = () => {
|
|
40
|
+
setCaseState(caseDispatch, { isFileRecommendationsTriggered: true });
|
|
38
41
|
onClose();
|
|
39
42
|
setEAModalVisibility(true);
|
|
40
43
|
props.userClosed();
|
|
41
44
|
};
|
|
42
45
|
if (!showNotification && !rulesState.triggerRuleNotification)
|
|
43
46
|
return null;
|
|
44
|
-
return (React.createElement(Alert, { isLiveRegion: true, variant: "success", title: t('File recommendations are ready to view'), "data-tracking-id": "toast-view-
|
|
47
|
+
return (React.createElement(Alert, { isLiveRegion: true, variant: "success", title: t('File recommendations are ready to view'), "data-tracking-id": "toast-view-critical-solutions", actionLinks: React.createElement(Button, { isInline: true, variant: "link", onClick: viewCriticalSolution },
|
|
45
48
|
React.createElement(Trans, null, "Troubleshooting specific for your uploaded files.")), actionClose: React.createElement(AlertActionCloseButton, { variantLabel: "success alert", onClose: onClose }), timeout: caseType !== PreviousCaseTypes.FEATURE_ENHANCEMENT }));
|
|
46
49
|
};
|
|
47
50
|
export default CriticalSolutionsToast;
|
|
@@ -7,7 +7,7 @@ export function RecommendationFeedbackModal({ isModalOpen, handleModalToggle, mo
|
|
|
7
7
|
React.createElement(Link, { "data-tracking-id": "resolved-feedback-cases", key: "view", className: "pf-c-button pf-m-primary", to: "/case/list" },
|
|
8
8
|
React.createElement(Trans, null, "View your cases")),
|
|
9
9
|
React.createElement(Button, { "data-tracking-id": "resolved-feedback-continue", key: "continue", variant: "link", onClick: handleModalToggle },
|
|
10
|
-
React.createElement(Trans, null, "Continue")),
|
|
10
|
+
React.createElement(Trans, null, "Continue troubleshooting")),
|
|
11
11
|
] },
|
|
12
12
|
React.createElement("h1", { id: "rec-feedback-modal" }, modalContent)));
|
|
13
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RulesModal.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/RulesModal.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RulesModal.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/RulesModal.tsx"],"names":[],"mappings":"AAmBA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAI5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAG7D,UAAU,MAAM;IACZ,cAAc,EAAE,wBAAwB,EAAE,CAAC;IAC3C,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,GAAG,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,eAyM/C"}
|
|
@@ -8,12 +8,14 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
10
|
import { pcm } from '@cee-eng/hydrajs';
|
|
11
|
-
import { Accordion, Button, Modal } from '@patternfly/react-core';
|
|
11
|
+
import { Accordion, Button, Card, CardBody, CardExpandableContent, CardHeader, CardTitle, Modal, } from '@patternfly/react-core';
|
|
12
12
|
import { useFetch } from '@rh-support/components';
|
|
13
13
|
import { getResTypeFromUrl } from '@rh-support/utils';
|
|
14
14
|
import React, { useContext, useEffect, useState } from 'react';
|
|
15
15
|
import { Trans, useTranslation } from 'react-i18next';
|
|
16
|
+
import { useCaseDispatch } from '../../context/CaseContext';
|
|
16
17
|
import { SessionRestoreDispatchContext, SessionRestoreStateContext } from '../../context/SessionRestoreContext';
|
|
18
|
+
import { setCaseState } from '../../reducers/CaseReducer';
|
|
17
19
|
import { createOrUpdateSessionResources, getSessResFromRecs } from '../../reducers/SessionRestoreReducer';
|
|
18
20
|
import { AttachmentStateContext } from '../shared/fileUpload/reducer/AttachmentReducerContext';
|
|
19
21
|
import { EARuleInfoAccordion } from './EARules/EARuleInfoAccordion';
|
|
@@ -40,6 +42,9 @@ export function InsightResultModal(props) {
|
|
|
40
42
|
const { request: resolveSessionRequest, isFetching } = useFetch(pcm.preCase.session.resolveSession);
|
|
41
43
|
const { sessionRestore: { activeSessionId, sessionResourceTracking }, } = useContext(SessionRestoreStateContext);
|
|
42
44
|
const [isModalVisible, setIsModalVisible] = useState(false);
|
|
45
|
+
const caseDispatch = useCaseDispatch();
|
|
46
|
+
const [isExpanded, setIsExpanded] = React.useState(true);
|
|
47
|
+
// To handle self solving of issues
|
|
43
48
|
const handleSolvedIssue = () => __awaiter(this, void 0, void 0, function* () {
|
|
44
49
|
var _a, _b, _c, _d;
|
|
45
50
|
try {
|
|
@@ -59,6 +64,9 @@ export function InsightResultModal(props) {
|
|
|
59
64
|
const onModalToggle = () => {
|
|
60
65
|
setIsModalVisible((visible) => !visible);
|
|
61
66
|
};
|
|
67
|
+
const onExpand = (event, id) => {
|
|
68
|
+
setIsExpanded(!isExpanded);
|
|
69
|
+
};
|
|
62
70
|
useEffect(() => {
|
|
63
71
|
props.isOpen &&
|
|
64
72
|
createOrUpdateSessionResources(sessionRestoreDispatch, activeSessionId, sessionResourceTracking, SessionResourceSource.INSIGHTS, getSessResFromRecs(props.insightResults, SessionResourceVisibility.PRESENTED));
|
|
@@ -86,14 +94,22 @@ export function InsightResultModal(props) {
|
|
|
86
94
|
setCanShowNewTag(!(total === trueValues));
|
|
87
95
|
}, [selectedLocalFiles, props.EARule]);
|
|
88
96
|
if (props.isRenderedMain) {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
+
setCaseState(caseDispatch, { isFileRecommendationsTriggered: true });
|
|
98
|
+
return (React.createElement(Card, { id: "expandable-card", className: "card-support top-recommendations", isExpanded: isExpanded, isCompact: true },
|
|
99
|
+
React.createElement(CardHeader, { onExpand: onExpand, toggleButtonProps: {
|
|
100
|
+
id: 'toggle-button1',
|
|
101
|
+
'aria-label': t('File recommendations'),
|
|
102
|
+
'aria-labelledby': 'expandable-card-title toggle-button1',
|
|
103
|
+
'aria-expanded': isExpanded,
|
|
104
|
+
}, className: "popular-solutions" },
|
|
105
|
+
React.createElement(CardTitle, { id: "expandable-card-title", className: "card-title" },
|
|
106
|
+
React.createElement(Trans, null, "File recommendations"))),
|
|
107
|
+
React.createElement(CardExpandableContent, null,
|
|
108
|
+
React.createElement(CardBody, { className: "file-recommendation" },
|
|
109
|
+
React.createElement(Accordion, { headingLevel: "h5", asDefinitionList: false, isBordered: true },
|
|
110
|
+
props.insightResults.map((doc) => (React.createElement(InsightsRuleInfo, { duplicateKeys: duplicateKeys, showNewTag: canShowNewTag, key: doc.id + doc.attachmentId, doc: doc }))),
|
|
111
|
+
props.EARule.length > 0 &&
|
|
112
|
+
props.EARule.map((rule, index) => (React.createElement(EARuleInfoAccordion, { showNewTag: canShowNewTag, key: `${index}_eaRule`, rule: rule }))))))));
|
|
97
113
|
}
|
|
98
114
|
return (React.createElement(React.Fragment, null,
|
|
99
115
|
React.createElement(RecommendationFeedbackModal, { isModalOpen: isModalVisible, handleModalToggle: onModalToggle, modalContent: t(`Great, we're glad that resolved your issue`) }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Review.d.ts","sourceRoot":"","sources":["../../../../src/components/Review/Review.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Review.d.ts","sourceRoot":"","sources":["../../../../src/components/Review/Review.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAInD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAsBlE,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;CACpD;AACD,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,KAAK,EAAE,MAAM,eA4D3C"}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import { Flex, FlexItem } from '@patternfly/react-core';
|
|
2
|
-
import { useGlobalStateContext } from '@rh-support/react-context';
|
|
3
2
|
import { AbilityContext, CaseDetailsFields, resourceActions, resources } from '@rh-support/user-permissions';
|
|
4
|
-
import { isSpecialSupportOfferingEnabled } from '@rh-support/utils';
|
|
5
3
|
import isEmpty from 'lodash/isEmpty';
|
|
6
4
|
import isEqual from 'lodash/isEqual';
|
|
7
5
|
import React, { useContext } from 'react';
|
|
@@ -19,7 +17,6 @@ import Severity from '../CaseInformation/Severity';
|
|
|
19
17
|
import SupportLevel from '../CaseInformation/SupportLevel';
|
|
20
18
|
import CaseLanguageSelector from '../CaseManagement/CaseLanguageSelector';
|
|
21
19
|
import { Cep } from '../CaseManagement/Cep';
|
|
22
|
-
import ESSRemoteSessionCheck from '../CaseManagement/ESSRemoteSessionCheckBox';
|
|
23
20
|
import OpenReferenceNumber from '../CaseManagement/OpenReferenceNumber';
|
|
24
21
|
import { OpenShiftClusterId } from '../CaseManagement/OpenShiftClusterId';
|
|
25
22
|
import { RHAssociatesSelector } from '../CaseManagement/RHAssociatesSelector';
|
|
@@ -29,21 +26,15 @@ import KtQuestions from '../ImproveCase/KtQuestions';
|
|
|
29
26
|
import { AllProductsSelector } from '../ProductSelector/AllProductsSelector';
|
|
30
27
|
import { EARuleWidget } from '../Recommendations/EARules/EARuleWidget';
|
|
31
28
|
export default function Review(props) {
|
|
32
|
-
var _a;
|
|
33
29
|
const caseDispatch = useCaseDispatch();
|
|
34
|
-
const { contactInfo24x7
|
|
30
|
+
const { contactInfo24x7 } = useCaseSelector((state) => ({
|
|
35
31
|
contactInfo24x7: state.caseDetails.contactInfo24x7,
|
|
36
|
-
product: state.caseDetails.product,
|
|
37
32
|
}), isEqual);
|
|
38
33
|
const ability = useContext(AbilityContext);
|
|
39
34
|
const canSeeEmailNotifications = ability.can(resourceActions.PATCH, resources.CASE_DETAILS, CaseDetailsFields.CASE_DETAILS_SEND_NOTIFICATIONS);
|
|
40
|
-
const selectedProduct = product;
|
|
41
|
-
const { globalMetadataState: { allProducts }, } = useGlobalStateContext();
|
|
42
35
|
const onSeverityChange = (payload) => {
|
|
43
36
|
setCaseDetails(caseDispatch, payload);
|
|
44
37
|
};
|
|
45
|
-
// To check if the user is ESS Customer and Product has ESS Support
|
|
46
|
-
const isESSCustomer = isSpecialSupportOfferingEnabled((_a = allProducts.data) === null || _a === void 0 ? void 0 : _a.productsResult, selectedProduct);
|
|
47
38
|
return (React.createElement(React.Fragment, null,
|
|
48
39
|
React.createElement(EARuleWidget, null),
|
|
49
40
|
React.createElement("form", { className: "review-form card card-light push-bottom" },
|
|
@@ -68,6 +59,5 @@ export default function Review(props) {
|
|
|
68
59
|
canSeeEmailNotifications && React.createElement(CaseContactSelector, null),
|
|
69
60
|
React.createElement(RHAssociatesSelector, null),
|
|
70
61
|
React.createElement(OpenReferenceNumber, { inlineEditable: false, hideSaveCancel: true }),
|
|
71
|
-
React.createElement(Cep, null)
|
|
72
|
-
isESSCustomer && React.createElement(ESSRemoteSessionCheck, null))));
|
|
62
|
+
React.createElement(Cep, null))));
|
|
73
63
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubmitCase.d.ts","sourceRoot":"","sources":["../../../../src/components/SubmitCase/SubmitCase.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SubmitCase.d.ts","sourceRoot":"","sources":["../../../../src/components/SubmitCase/SubmitCase.tsx"],"names":[],"mappings":"AA4BA,MAAM,CAAC,OAAO,UAAU,UAAU,gBA2RjC"}
|
|
@@ -3,7 +3,7 @@ import { ActionList, ActionListItem, Button, Text, TextVariants } from '@pattern
|
|
|
3
3
|
import CheckCircleIcon from '@patternfly/react-icons/dist/js/icons/check-circle-icon';
|
|
4
4
|
import { AlertMessage, AlertType, useFetch } from '@rh-support/components';
|
|
5
5
|
import { GlobalMetadataStateContext } from '@rh-support/react-context';
|
|
6
|
-
import { getConfigField, getRedhatDotComHost,
|
|
6
|
+
import { getConfigField, getRedhatDotComHost, PCM_CONFIG_FIELD_TYPE, PreviousCaseTypes } from '@rh-support/utils';
|
|
7
7
|
import find from 'lodash/find';
|
|
8
8
|
import isEmpty from 'lodash/isEmpty';
|
|
9
9
|
import isEqual from 'lodash/isEqual';
|
|
@@ -25,8 +25,7 @@ import { isUploadedAndAnalyzed, isUploadingAttachment } from '../shared/fileUplo
|
|
|
25
25
|
import { AttachmentStateContext } from '../shared/fileUpload/reducer/AttachmentReducerContext';
|
|
26
26
|
import Suggestions from '../Suggestions/Suggestions';
|
|
27
27
|
export default function SubmitCase() {
|
|
28
|
-
|
|
29
|
-
const { entitlementSla, severity, caseNumber, caseType, version, versionsDetails, addNotifiedUserError, isCreatingCase, caseCreationError, caseCreationErrorMessage, selectedAccountDetails, product, } = useCaseSelector((state) => ({
|
|
28
|
+
const { entitlementSla, severity, caseNumber, caseType, version, versionsDetails, addNotifiedUserError, isCreatingCase, caseCreationError, caseCreationErrorMessage, selectedAccountDetails, } = useCaseSelector((state) => ({
|
|
30
29
|
entitlementSla: state.caseDetails.entitlementSla,
|
|
31
30
|
severity: state.caseDetails.severity,
|
|
32
31
|
caseNumber: state.caseDetails.caseNumber,
|
|
@@ -38,16 +37,14 @@ export default function SubmitCase() {
|
|
|
38
37
|
caseCreationError: state.caseCreationError,
|
|
39
38
|
caseCreationErrorMessage: state.caseCreationErrorMessage,
|
|
40
39
|
selectedAccountDetails: state.selectedAccountDetails,
|
|
41
|
-
product: state.caseDetails.product,
|
|
42
40
|
}), isEqual);
|
|
43
|
-
const selectedProduct = product;
|
|
44
41
|
const isIdea = caseType === PreviousCaseTypes.FEATURE_ENHANCEMENT;
|
|
45
42
|
const { topContentState: { topContent }, } = useContext(TCStateContext);
|
|
46
43
|
const { rulesState } = useContext(RulesStateContext);
|
|
47
44
|
const { clusterRecommendationsState: { clusterRecommendations }, } = useContext(ClusterRecommendationsContext);
|
|
48
45
|
const { attachmentState } = useContext(AttachmentStateContext);
|
|
49
46
|
const [isRemoteRiderBannerVisible, setIsRemoteRiderBannerVisible] = useState(true);
|
|
50
|
-
const { globalMetadataState: { loggedInUser, loggedInUsersAccount, pcmConfig
|
|
47
|
+
const { globalMetadataState: { loggedInUser, loggedInUsersAccount, pcmConfig }, } = useContext(GlobalMetadataStateContext);
|
|
51
48
|
const getBusinessHours = useFetch(publicApi.businessHours.getBusinessHours);
|
|
52
49
|
const { t } = useTranslation();
|
|
53
50
|
const showRemoteRiderTermsInline = getConfigField(pcmConfig.data, 'showInlineRemoteRiderTerms', PCM_CONFIG_FIELD_TYPE.FEATURE_FLAG);
|
|
@@ -85,14 +82,12 @@ export default function SubmitCase() {
|
|
|
85
82
|
? false
|
|
86
83
|
: attachmentState.caseFiles.selectedLocalFiles.every((localFile) => !isUploadedAndAnalyzed(localFile));
|
|
87
84
|
const isNotAnIdea = caseType !== PreviousCaseTypes.FEATURE_ENHANCEMENT;
|
|
88
|
-
// To check if the user is ESS Customer and Product has ESS Support
|
|
89
|
-
const isESSCustomer = isSpecialSupportOfferingEnabled((_a = allProducts.data) === null || _a === void 0 ? void 0 : _a.productsResult, selectedProduct);
|
|
90
85
|
return (React.createElement("article", { className: "gird-main" },
|
|
91
86
|
React.createElement(AlertMessage, { className: "push-top", title: t('Failed to add user.'), variant: AlertType.DANGER, show: addNotifiedUserError }),
|
|
92
87
|
React.createElement(AlertMessage, { className: "push-top", variant: AlertType.DANGER, show: caseCreationError, title: t("Sorry, we're experiencing an error"), isInline: true },
|
|
93
88
|
React.createElement(React.Fragment, null, caseCreationErrorMessage)),
|
|
94
89
|
!isCreatingCase && !caseCreationError && (React.createElement(React.Fragment, null,
|
|
95
|
-
showRemoteRiderBanner && !loggedInUser.data.isInternal &&
|
|
90
|
+
showRemoteRiderBanner && !loggedInUser.data.isInternal && (React.createElement(RemoteRiderBanner, { onConfirm: onRemoteRiderConfirm, onClose: onRemoteRiderClose, caseNumber: caseNumber, isSecureSupport: loggedInUsersAccount.data.secureSupport })),
|
|
96
91
|
React.createElement("div", { className: "submit-case-header-container" },
|
|
97
92
|
React.createElement("p", { className: "kicker kicker-sm pf-u-mb-sm" }, !isEmpty(RouteUtils.seBasePath) &&
|
|
98
93
|
!isUploadingAttachment(attachmentState.caseFiles.selectedLocalFiles) ? (React.createElement(React.Fragment, null,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TroubleshootSection.d.ts","sourceRoot":"","sources":["../../../../src/components/TroubleshootSection/TroubleshootSection.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TroubleshootSection.d.ts","sourceRoot":"","sources":["../../../../src/components/TroubleshootSection/TroubleshootSection.tsx"],"names":[],"mappings":"AAkBA,UAAU,MAAM;IACZ,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC5B;AASD,iBAAS,mBAAmB,CAAC,KAAK,EAAE,MAAM,eA0GzC;kBA1GQ,mBAAmB;;;AA6G5B,eAAe,mBAAmB,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Card, CardBody, CardHeader, CardTitle } from '@patternfly/react-core';
|
|
1
2
|
import { ErrorBoundary, LoadingDots } from '@rh-support/components';
|
|
2
3
|
import { GlobalMetadataStateContext } from '@rh-support/react-context';
|
|
3
4
|
import { ability, CaseListFields, resourceActions, resources } from '@rh-support/user-permissions';
|
|
@@ -31,7 +32,6 @@ function TroubleshootSection(props) {
|
|
|
31
32
|
isCreatingCase: state.isCreatingCase,
|
|
32
33
|
caseType: state.caseDetails.caseType,
|
|
33
34
|
}), isEqual);
|
|
34
|
-
const isIdea = caseType === PreviousCaseTypes.FEATURE_ENHANCEMENT;
|
|
35
35
|
const canShowTopProducts = isEmpty(product);
|
|
36
36
|
const canShowTopContent = !canShowTopProducts && ((_a = topContent === null || topContent === void 0 ? void 0 : topContent.data) === null || _a === void 0 ? void 0 : _a.length) > 0;
|
|
37
37
|
const canAddAttachments = ability.can(resourceActions.PATCH, resources.CASE_CREATE, CaseListFields.ATTACHMENTS);
|
|
@@ -47,21 +47,26 @@ function TroubleshootSection(props) {
|
|
|
47
47
|
' ',
|
|
48
48
|
React.createElement("p", { className: "pf-u-font-weight-bold selected-product-suggestion" }, product))),
|
|
49
49
|
React.createElement(LoadingDots, { show: topContent.isFetching }),
|
|
50
|
-
topContent.data.length === 0 && (React.createElement(
|
|
51
|
-
React.createElement("
|
|
52
|
-
React.createElement(
|
|
53
|
-
|
|
50
|
+
topContent.data.length === 0 && (React.createElement(Card, { id: "card", className: "card-support top-recommendations pf-u-mb-md", isCompact: true },
|
|
51
|
+
React.createElement(CardHeader, { "aria-label": t('Popular solutions and docs'), className: "popular-solutions" },
|
|
52
|
+
React.createElement(CardTitle, { id: "card-title", className: "card-title" },
|
|
53
|
+
React.createElement(Trans, { i18nKey: 'i18nKeyPopularSolutions' }, "Popular solutions and docs"))),
|
|
54
|
+
React.createElement(CardBody, { "aria-label": t('No recommendations for this product'), className: "file-recs-no-recommendation pf-u-mt-md" },
|
|
54
55
|
React.createElement(Trans, null, "No recommendations for this product")))),
|
|
55
56
|
React.createElement(ErrorBoundary, { errorMsgInfo: { message: t('There was an error loading suggestions') } }, canShowTopContent && !isEmpty(version) && React.createElement(Suggestions, null)),
|
|
56
57
|
!isCreatingCase && React.createElement(ClusterRecommendations, { className: "push-top" }))),
|
|
57
58
|
React.createElement("section", { className: "pf-u-mt-lg" },
|
|
58
59
|
isNotAnIdea && React.createElement(InsightsResults, { isDisplayOnMain: true }),
|
|
59
|
-
React.createElement("div", { className: "push-top" }, canAddAttachments ? (React.createElement(FileDiag, null)) : (React.createElement(
|
|
60
|
-
React.createElement(
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
"."))))))
|
|
60
|
+
React.createElement("div", { className: "push-top" }, canAddAttachments ? (React.createElement(FileDiag, null)) : (React.createElement(React.Fragment, null,
|
|
61
|
+
React.createElement(Card, { id: "card", className: "card-support card-white file-diag", isCompact: true },
|
|
62
|
+
React.createElement(CardHeader, { "aria-label": !isNotAnIdea || loggedInUsersAccount.data.secureSupport
|
|
63
|
+
? t('File uploader')
|
|
64
|
+
: t('Upload file to analyze'), className: "card-heading" },
|
|
65
|
+
React.createElement(CardTitle, { id: "card-title", className: "card-title" }, !isNotAnIdea || loggedInUsersAccount.data.secureSupport ? (React.createElement(Trans, null, "File uploader")) : (React.createElement(Trans, null, "Upload file to analyze")))),
|
|
66
|
+
React.createElement(CardBody, { "aria-label": t('No recommendations for this product'), className: "no-access-file-diag" },
|
|
67
|
+
React.createElement("div", { className: "display-dashed pf-u-font-weight-bold pf-u-text-align-center pf-u-mt-md" },
|
|
68
|
+
React.createElement(Trans, null, "You do not have access to upload files"),
|
|
69
|
+
".")))))))));
|
|
65
70
|
}
|
|
66
71
|
TroubleshootSection.defaultProps = defaultProps;
|
|
67
72
|
export default TroubleshootSection;
|
|
@@ -36,7 +36,7 @@ function WizardAside(props) {
|
|
|
36
36
|
canShowFileRecommendationSectionsWidget && React.createElement(InsightsResults, { isDisplayOnMain: true }),
|
|
37
37
|
React.createElement(ClusterRecommendations, { showClusterRecommendationsList: canShowClusterIdReportWidget }),
|
|
38
38
|
canUseSessionManagement && !isCreatingCase && React.createElement(SessionRestore, { routeProps: props.routeProps }),
|
|
39
|
-
canShowFileUploadWidget() && React.createElement(FileDiag,
|
|
39
|
+
canShowFileUploadWidget() && React.createElement(FileDiag, { className: "pf-u-mt-md" }))));
|
|
40
40
|
}
|
|
41
41
|
WizardAside.defaultProps = defaultProps;
|
|
42
42
|
export default WizardAside;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WizardNavigation.d.ts","sourceRoot":"","sources":["../../../../src/components/wizardLayout/WizardNavigation.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"WizardNavigation.d.ts","sourceRoot":"","sources":["../../../../src/components/wizardLayout/WizardNavigation.tsx"],"names":[],"mappings":"AASA,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAMnD,OAAO,EAAoB,eAAe,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAK3G,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACjD,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC3C,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,mBAAmB,EAAE,CAAC,2BAA2B,EAAE,OAAO,EAAE,gCAAgC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/G,gBAAgB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CAC7C;AAGD,iBAAS,gBAAgB,CAAC,KAAK,EAAE,MAAM,eA4JtC;kBA5JQ,gBAAgB;;;AA8JzB,eAAe,gBAAgB,CAAC"}
|
|
@@ -1,12 +1,28 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { pcm } from '@cee-eng/hydrajs';
|
|
11
|
+
import { Button, ButtonVariant } from '@patternfly/react-core';
|
|
12
|
+
import { useFetch } from '@rh-support/components';
|
|
1
13
|
import { GlobalMetadataStateContext, useCanCreateCase } from '@rh-support/react-context';
|
|
14
|
+
import { getResTypeFromUrl } from '@rh-support/utils';
|
|
2
15
|
import find from 'lodash/find';
|
|
3
16
|
import isEqual from 'lodash/isEqual';
|
|
4
|
-
import React, { useContext } from 'react';
|
|
17
|
+
import React, { useContext, useState } from 'react';
|
|
5
18
|
import { useTranslation } from 'react-i18next';
|
|
6
|
-
import { useCaseSelector } from '../../context/CaseContext';
|
|
19
|
+
import { useCaseDispatch, useCaseSelector } from '../../context/CaseContext';
|
|
7
20
|
import { RouteContext, RouteDispatchContext } from '../../context/RouteContext';
|
|
21
|
+
import { SessionRestoreStateContext } from '../../context/SessionRestoreContext';
|
|
22
|
+
import { setCaseState } from '../../reducers/CaseReducer';
|
|
8
23
|
import { AppRouteSections } from '../../reducers/RouteConstNTypes';
|
|
9
24
|
import { updateisNextBtnClickedToShowValidationError } from '../../reducers/RouteReducer';
|
|
25
|
+
import { RecommendationFeedbackModal } from '../Recommendations/RecommendationFeedbackModal';
|
|
10
26
|
import { useIsSectionValid } from '../shared/useIsSectionValid';
|
|
11
27
|
const defaultProps = {};
|
|
12
28
|
function WizardNavigation(props) {
|
|
@@ -22,6 +38,14 @@ function WizardNavigation(props) {
|
|
|
22
38
|
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;
|
|
23
39
|
const dispatchToRouteReducer = useContext(RouteDispatchContext);
|
|
24
40
|
const { activeSectionError, isSectionValidFn } = useIsSectionValid(activeSection);
|
|
41
|
+
const [isRecsModalVisible, setIsRecsModalVisible] = useState(false);
|
|
42
|
+
const { request: resolveSessionRequest } = useFetch(pcm.preCase.session.resolveSession);
|
|
43
|
+
const { sessionRestore: { activeSessionId, sessionResourceTracking }, } = useContext(SessionRestoreStateContext);
|
|
44
|
+
const { SessionResourceSource } = pcm.preCase.session;
|
|
45
|
+
const { isFileRecommendationsTriggered } = useCaseSelector((state) => ({
|
|
46
|
+
isFileRecommendationsTriggered: state.isFileRecommendationsTriggered,
|
|
47
|
+
}), isEqual);
|
|
48
|
+
const caseDispatch = useCaseDispatch();
|
|
25
49
|
const onNext = () => {
|
|
26
50
|
var _a, _b;
|
|
27
51
|
updateisNextBtnClickedToShowValidationError(dispatchToRouteReducer, true);
|
|
@@ -59,13 +83,35 @@ function WizardNavigation(props) {
|
|
|
59
83
|
props.onShowRestUpdate(false);
|
|
60
84
|
props.onBack();
|
|
61
85
|
};
|
|
86
|
+
const onRecsFeedbackModalToggle = () => {
|
|
87
|
+
setIsRecsModalVisible((visible) => !visible);
|
|
88
|
+
};
|
|
89
|
+
// To handle self solving through file recommendations
|
|
90
|
+
const handleFileRecsSelfSolved = () => __awaiter(this, void 0, void 0, function* () {
|
|
91
|
+
var _c, _d, _e, _f;
|
|
92
|
+
try {
|
|
93
|
+
yield resolveSessionRequest(activeSessionId, {
|
|
94
|
+
sessionId: activeSessionId,
|
|
95
|
+
sessionResourceOriginId: (_d = (_c = sessionResourceTracking[SessionResourceSource.INSIGHTS]) === null || _c === void 0 ? void 0 : _c.resourceOriginId) !== null && _d !== void 0 ? _d : '',
|
|
96
|
+
type: getResTypeFromUrl(''),
|
|
97
|
+
source: SessionResourceSource.INSIGHTS,
|
|
98
|
+
resourceEntityId: (_f = (_e = sessionResourceTracking[SessionResourceSource.INSIGHTS]) === null || _e === void 0 ? void 0 : _e.resourceEntityId) !== null && _f !== void 0 ? _f : '',
|
|
99
|
+
url: '',
|
|
100
|
+
});
|
|
101
|
+
setCaseState(caseDispatch, { isFileRecommendationsTriggered: false });
|
|
102
|
+
setIsRecsModalVisible(true);
|
|
103
|
+
}
|
|
104
|
+
catch (e) { }
|
|
105
|
+
});
|
|
62
106
|
// To handle entitled products
|
|
63
107
|
const isEntitledProductLocal = isSearchIntent ? true : isEntitledProduct;
|
|
64
108
|
return (React.createElement(React.Fragment, null,
|
|
65
|
-
props.activeStep.order !== 0 && (React.createElement("button", { onClick: () => onBack(), className: "btn btn-app btn-open-white", "data-tracking-id": `prev-of-${activeSection}` }, t('Go back'))),
|
|
109
|
+
props.activeStep.order !== 0 && (React.createElement("button", { onClick: () => onBack(), className: "btn btn-app btn-open-white main-nav-button", "data-tracking-id": `prev-of-${activeSection}` }, t('Go back'))),
|
|
66
110
|
React.createElement("button", { disabled: (!isEntitledProductLocal && props.activeStep.nextButtonLabel === 'Get support') ||
|
|
67
111
|
(!isSectionValidFn(props.activeStep.id) && isNextBtnClickedToShowValidationError) ||
|
|
68
|
-
noValidEntitlement, onClick: onNext, className: "btn btn-app btn-primary", "data-tracking-id": `next-of-${activeSection}` }, t(props.activeStep.nextButtonLabel)),
|
|
112
|
+
noValidEntitlement, onClick: onNext, className: "btn btn-app btn-primary main-nav-button", "data-tracking-id": `next-of-${activeSection}` }, t(props.activeStep.nextButtonLabel)),
|
|
113
|
+
activeSection === AppRouteSections.TROUBLESHOOT && isFileRecommendationsTriggered && (React.createElement(Button, { onClick: handleFileRecsSelfSolved, variant: ButtonVariant.secondary, className: "issue-solved-button solved-issue-button", "data-tracking-id": "troubleshoot-self-solved-issue" }, t('I solved my issue'))),
|
|
114
|
+
React.createElement(RecommendationFeedbackModal, { isModalOpen: isRecsModalVisible, handleModalToggle: onRecsFeedbackModalToggle, modalContent: t(`Great, we're glad that resolved your issue`) }),
|
|
69
115
|
activeSectionError ? (React.createElement("small", { className: "pf-u-align-self-center pf-u-ml-md text-red" }, t(activeSectionError))) : null));
|
|
70
116
|
}
|
|
71
117
|
WizardNavigation.defaultProps = defaultProps;
|
|
@@ -199,6 +199,7 @@ export interface ICaseState {
|
|
|
199
199
|
caseCreation500ErrorStatus: boolean;
|
|
200
200
|
openshiftDisplayName?: string;
|
|
201
201
|
isCaseOwnerUpdating: boolean;
|
|
202
|
+
isFileRecommendationsTriggered?: boolean;
|
|
202
203
|
}
|
|
203
204
|
export interface ICreateCasePayloadType extends ICaseState {
|
|
204
205
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CaseConstNTypes.d.ts","sourceRoot":"","sources":["../../../src/reducers/CaseConstNTypes.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"CaseConstNTypes.d.ts","sourceRoot":"","sources":["../../../src/reducers/CaseConstNTypes.ts"],"names":[],"mappings":"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"}
|