@rh-support/troubleshoot 2.6.27 → 2.6.28

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.
Files changed (121) hide show
  1. package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/ActiveCustomerEscalation.d.ts +0 -1
  2. package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/ActiveCustomerEscalation.d.ts.map +1 -1
  3. package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/ActiveCustomerEscalation.js +5 -31
  4. package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/RequestEscalationModal.d.ts.map +1 -1
  5. package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/RequestEscalationModal.js +34 -33
  6. package/lib/esm/components/CaseEditView/CaseDetailsAside.d.ts.map +1 -1
  7. package/lib/esm/components/CaseEditView/CaseDetailsAside.js +1 -2
  8. package/lib/esm/components/CaseEditView/CaseDetailsTabs.d.ts.map +1 -1
  9. package/lib/esm/components/CaseEditView/CaseDetailsTabs.js +0 -1
  10. package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutionsItem.js +1 -1
  11. package/lib/esm/components/CaseEditView/ConfirmationModals/ReopenCaseModal.d.ts.map +1 -1
  12. package/lib/esm/components/CaseEditView/ConfirmationModals/ReopenCaseModal.js +22 -16
  13. package/lib/esm/components/CaseEditView/RequestRemoteSession/ESSRemoteSession.js +1 -1
  14. package/lib/esm/components/CaseEditView/RequestRemoteSession/NewEssTermsModal.d.ts.map +1 -1
  15. package/lib/esm/components/CaseEditView/RequestRemoteSession/NewEssTermsModal.js +102 -53
  16. package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreementModal.d.ts.map +1 -1
  17. package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreementModal.js +20 -22
  18. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseHostname.js +2 -4
  19. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CasePhoneNumberConfirmAlert.d.ts.map +1 -1
  20. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CasePhoneNumberConfirmAlert.js +5 -8
  21. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/VerifyCaseStatusModal/VerifyCaseStatusModal.d.ts.map +1 -1
  22. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/VerifyCaseStatusModal/VerifyCaseStatusModal.js +9 -7
  23. package/lib/esm/components/CaseEditView/Tabs/CaseHistory/Timeline.css +8 -0
  24. package/lib/esm/components/CaseInformation/Fts.d.ts.map +1 -1
  25. package/lib/esm/components/CaseInformation/Fts.js +2 -6
  26. package/lib/esm/components/CaseInformation/Severity.js +1 -1
  27. package/lib/esm/components/CaseInformation/SupportLevel.d.ts.map +1 -1
  28. package/lib/esm/components/CaseInformation/SupportLevel.js +1 -1
  29. package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.d.ts.map +1 -1
  30. package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.js +13 -1
  31. package/lib/esm/components/CaseManagement/RHAssociatesSelector.d.ts.map +1 -1
  32. package/lib/esm/components/CaseManagement/RHAssociatesSelector.js +8 -5
  33. package/lib/esm/components/CaseManagement/SendNotifications/CaseContactSelector.d.ts.map +1 -1
  34. package/lib/esm/components/CaseManagement/SendNotifications/CaseContactSelector.js +7 -7
  35. package/lib/esm/components/CaseManagement/SendNotifications/NonOrgCaseNotifyeesSelector.d.ts.map +1 -1
  36. package/lib/esm/components/CaseManagement/SendNotifications/NonOrgCaseNotifyeesSelector.js +1 -1
  37. package/lib/esm/components/Cve/CveModal.d.ts.map +1 -1
  38. package/lib/esm/components/Cve/CveModal.js +3 -2
  39. package/lib/esm/components/Cve/CveSidebar.js +1 -1
  40. package/lib/esm/components/OpenCase/SupportTypeSelectorPage.js +1 -1
  41. package/lib/esm/components/ProductSelector/AllProductsSelector.d.ts.map +1 -1
  42. package/lib/esm/components/ProductSelector/AllProductsSelector.js +9 -6
  43. package/lib/esm/components/ProductSelector/NewProductDropdownSelector.d.ts.map +1 -1
  44. package/lib/esm/components/ProductSelector/NewProductDropdownSelector.js +10 -1
  45. package/lib/esm/components/Recommendations/AsideResults.d.ts.map +1 -1
  46. package/lib/esm/components/Recommendations/AsideResults.js +2 -2
  47. package/lib/esm/components/Recommendations/ClusterRecommendationsModal.d.ts.map +1 -1
  48. package/lib/esm/components/Recommendations/ClusterRecommendationsModal.js +7 -4
  49. package/lib/esm/components/Recommendations/EARules/EARuleInfoAccordion.d.ts.map +1 -1
  50. package/lib/esm/components/Recommendations/EARules/EARuleInfoAccordion.js +3 -1
  51. package/lib/esm/components/Recommendations/InsightsResults.js +1 -1
  52. package/lib/esm/components/Recommendations/InsightsRuleInfo.d.ts.map +1 -1
  53. package/lib/esm/components/Recommendations/InsightsRuleInfo.js +9 -2
  54. package/lib/esm/components/Recommendations/RecommendationFeedbackModal.d.ts.map +1 -1
  55. package/lib/esm/components/Recommendations/RecommendationFeedbackModal.js +4 -4
  56. package/lib/esm/components/Recommendations/Recommendations.js +1 -1
  57. package/lib/esm/components/Recommendations/RulesModal.d.ts.map +1 -1
  58. package/lib/esm/components/Recommendations/RulesModal.js +7 -4
  59. package/lib/esm/components/Recommendations/WatsonxAiIcon.js +1 -1
  60. package/lib/esm/components/SessionRestore/SessionRestore.js +1 -1
  61. package/lib/esm/components/Suggestions/Suggestions.d.ts.map +1 -1
  62. package/lib/esm/components/Suggestions/Suggestions.js +17 -12
  63. package/lib/esm/components/Suggestions/TopContent.d.ts.map +1 -1
  64. package/lib/esm/components/Suggestions/TopContent.js +13 -13
  65. package/lib/esm/components/TroubleshootSection/TroubleshootSection.d.ts +0 -7
  66. package/lib/esm/components/TroubleshootSection/TroubleshootSection.d.ts.map +1 -1
  67. package/lib/esm/components/TroubleshootSection/TroubleshootSection.js +13 -96
  68. package/lib/esm/components/shared/fileUpload/WidgetFileUploader.js +3 -3
  69. package/lib/esm/components/shared/fileUpload/css/fileSelector.css +1 -0
  70. package/lib/esm/components/shared/input/ContactSelectorInternal.d.ts +1 -0
  71. package/lib/esm/components/shared/input/ContactSelectorInternal.d.ts.map +1 -1
  72. package/lib/esm/components/shared/input/ContactSelectorInternal.js +6 -1
  73. package/lib/esm/components/shared/useIsSectionValid.d.ts.map +1 -1
  74. package/lib/esm/components/shared/useIsSectionValid.js +7 -1
  75. package/lib/esm/components/wizardLayout/GlobalTroubleshootEffects.d.ts.map +1 -1
  76. package/lib/esm/components/wizardLayout/GlobalTroubleshootEffects.js +3 -1
  77. package/lib/esm/components/wizardLayout/WizardAside.js +3 -3
  78. package/lib/esm/components/wizardLayout/WizardLayout.d.ts.map +1 -1
  79. package/lib/esm/components/wizardLayout/WizardLayout.js +4 -6
  80. package/lib/esm/components/wizardLayout/WizardMain.d.ts +1 -5
  81. package/lib/esm/components/wizardLayout/WizardMain.d.ts.map +1 -1
  82. package/lib/esm/components/wizardLayout/WizardMain.js +18 -147
  83. package/lib/esm/components/wizardLayout/WizardNavigation.d.ts +2 -4
  84. package/lib/esm/components/wizardLayout/WizardNavigation.d.ts.map +1 -1
  85. package/lib/esm/components/wizardLayout/WizardNavigation.js +16 -13
  86. package/lib/esm/components/wizardLayout/index.d.ts +0 -1
  87. package/lib/esm/components/wizardLayout/index.d.ts.map +1 -1
  88. package/lib/esm/components/wizardLayout/index.js +0 -1
  89. package/lib/esm/context/RootTroubleshootProvider.d.ts.map +1 -1
  90. package/lib/esm/context/RootTroubleshootProvider.js +6 -8
  91. package/lib/esm/css/app.css +5 -4
  92. package/lib/esm/css/case.css +12 -0
  93. package/lib/esm/css/results.css +2 -2
  94. package/lib/esm/hooks/useWizard.d.ts +0 -6
  95. package/lib/esm/hooks/useWizard.d.ts.map +1 -1
  96. package/lib/esm/hooks/useWizard.js +1 -1
  97. package/lib/esm/reducers/CaseConstNTypes.d.ts +0 -2
  98. package/lib/esm/reducers/CaseConstNTypes.d.ts.map +1 -1
  99. package/lib/esm/reducers/CaseConstNTypes.js +0 -2
  100. package/lib/esm/scss/_main.scss +35 -8
  101. package/lib/esm/scss/_pf-overrides.scss +14 -6
  102. package/package.json +6 -7
  103. package/lib/esm/components/TroubleshootSection/AskRedHat.d.ts +0 -7
  104. package/lib/esm/components/TroubleshootSection/AskRedHat.d.ts.map +0 -1
  105. package/lib/esm/components/TroubleshootSection/AskRedHat.js +0 -73
  106. package/lib/esm/components/TroubleshootSection/icons/CollapseIcon.d.ts +0 -9
  107. package/lib/esm/components/TroubleshootSection/icons/CollapseIcon.d.ts.map +0 -1
  108. package/lib/esm/components/TroubleshootSection/icons/CollapseIcon.js +0 -9
  109. package/lib/esm/components/TroubleshootSection/icons/StarIcon.d.ts +0 -9
  110. package/lib/esm/components/TroubleshootSection/icons/StarIcon.d.ts.map +0 -1
  111. package/lib/esm/components/TroubleshootSection/icons/StarIcon.js +0 -17
  112. package/lib/esm/context/AIResponseContext.d.ts +0 -10
  113. package/lib/esm/context/AIResponseContext.d.ts.map +0 -1
  114. package/lib/esm/context/AIResponseContext.js +0 -26
  115. package/lib/esm/css/AskRedHat.css +0 -338
  116. package/lib/esm/reducers/AIResponseConstNTypes.d.ts +0 -48
  117. package/lib/esm/reducers/AIResponseConstNTypes.d.ts.map +0 -1
  118. package/lib/esm/reducers/AIResponseConstNTypes.js +0 -16
  119. package/lib/esm/reducers/AIResponseReducer.d.ts +0 -9
  120. package/lib/esm/reducers/AIResponseReducer.d.ts.map +0 -1
  121. package/lib/esm/reducers/AIResponseReducer.js +0 -43
@@ -1 +1 @@
1
- {"version":3,"file":"GlobalTroubleshootEffects.d.ts","sourceRoot":"","sources":["../../../../src/components/wizardLayout/GlobalTroubleshootEffects.tsx"],"names":[],"mappings":"AASA,OAAO,KAAkD,MAAM,OAAO,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAWvD,OAAO,EAAqB,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAQrF,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;CACpD;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,qBAgTtD"}
1
+ {"version":3,"file":"GlobalTroubleshootEffects.d.ts","sourceRoot":"","sources":["../../../../src/components/wizardLayout/GlobalTroubleshootEffects.tsx"],"names":[],"mappings":"AASA,OAAO,KAAkD,MAAM,OAAO,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAWvD,OAAO,EAAqB,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAQrF,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;CACpD;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,qBAmTtD"}
@@ -24,7 +24,7 @@ import { useResetCaseCreate } from '../../hooks/useResetCaseCreate';
24
24
  import { CASE_DEATILS_SOURCE_REFERRER_LIMIT } from '../../reducers/CaseConstNTypes';
25
25
  import { getDescriptionWOQues } from '../../reducers/CaseHelpers';
26
26
  import { setCaseAccountNumber, setCaseDetails, setCaseOwner } from '../../reducers/CaseReducer';
27
- import { setRouteFlags } from '../../reducers/RouteReducer';
27
+ import { setRouteFlags, updateisNextBtnClickedToShowValidationError } from '../../reducers/RouteReducer';
28
28
  import { fetchEdmundAbbottRules } from '../../reducers/RulesReducer';
29
29
  import { fetchTopContent } from '../../reducers/TopContentReducer';
30
30
  import RouteUtils from '../../utils/routeUtils';
@@ -120,6 +120,8 @@ export function GlobalTroubleshootEffects(props) {
120
120
  if (!isFirstMount.current && loggedInUser.data && managedAccounts.data)
121
121
  return;
122
122
  if (isFirstMount.current) {
123
+ // Reset validation error state when the troubleshoot app first loads
124
+ updateisNextBtnClickedToShowValidationError(dispatchToRouteReducer, false);
123
125
  // set the summary if redirected from portal with url query param "summary"
124
126
  if (!isEmpty(urlQueryParams.summary)) {
125
127
  setCaseDetails(caseDispatch, { summary: urlQueryParams.summary });
@@ -39,14 +39,14 @@ function WizardAside(props) {
39
39
  React.createElement("section", { className: "grid-aside-content" },
40
40
  canUseSessionManagement && !isCreatingCase && activeSection !== AppRouteSections.SUBMIT_CASE && (React.createElement(SessionRestore, { routeProps: props.routeProps })),
41
41
  canShowFileUploadWidget() && React.createElement(InsightsResults, null),
42
- canShowFileUploadWidget() && React.createElement(FileDiag, { className: "pf-v6-u-mb-md" }),
42
+ canShowFileUploadWidget() && React.createElement(FileDiag, { className: "pf-v6-u-mb-lg" }),
43
43
  activeSection === (isCaseCreate ? AppRouteSections.SUMMARIZE : AppRouteSections.TROUBLESHOOT) &&
44
44
  !isCveModalOpened && React.createElement(CveSidebar, null),
45
45
  activeSection === AppRouteSections.RESOURCES && React.createElement(CveSidebar, null),
46
46
  canShowEARuleWidget && React.createElement(EARuleWidget, null),
47
- !(isIdea && activeSection === 'submit-case') && (React.createElement(AsideResults, { routeProps: props.routeProps, className: "pf-v6-u-mb-md pf-v6-u-mt-0" })),
47
+ !(isIdea && activeSection === 'submit-case') && (React.createElement(AsideResults, { routeProps: props.routeProps, className: "pf-v6-u-mb-lg pf-v6-u-mt-0" })),
48
48
  canShowFileRecommendationSectionsWidget && React.createElement(InsightsResults, { isDisplayOnMain: true }),
49
- React.createElement(ClusterRecommendations, { showClusterRecommendationsList: canShowClusterIdReportWidget, className: "pf-v6-u-mb-md pf-v6-u-mt-0" }))));
49
+ React.createElement(ClusterRecommendations, { showClusterRecommendationsList: canShowClusterIdReportWidget, className: "pf-v6-u-mb-lg pf-v6-u-mt-0" }))));
50
50
  }
51
51
  WizardAside.defaultProps = defaultProps;
52
52
  export default WizardAside;
@@ -1 +1 @@
1
- {"version":3,"file":"WizardLayout.d.ts","sourceRoot":"","sources":["../../../../src/components/wizardLayout/WizardLayout.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAEvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAMvD,OAAO,EAAuC,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAcvG,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;CACpD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,qBA2NzC"}
1
+ {"version":3,"file":"WizardLayout.d.ts","sourceRoot":"","sources":["../../../../src/components/wizardLayout/WizardLayout.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAEvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAMvD,OAAO,EAAuC,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAcvG,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;CACpD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,qBAoNzC"}
@@ -33,10 +33,8 @@ import { GlobalTroubleshootEffects } from './GlobalTroubleshootEffects';
33
33
  import WizardAside from './WizardAside';
34
34
  import WizardMain from './WizardMain';
35
35
  export function WizardLayout(props) {
36
- var _a, _b;
37
36
  const { routeState: { activeSection, isCaseCreate }, } = useContext(RouteContext);
38
37
  const { getMetadata } = useMetadata();
39
- const [isAIChatMode, setIsAIChatMode] = useState(false);
40
38
  const { caseCreationError, contactSSOName, caseType, product, caseState, ABTestVariation } = useCaseSelector((state) => ({
41
39
  caseState: state,
42
40
  caseCreationError: state.caseCreationError,
@@ -154,9 +152,9 @@ export function WizardLayout(props) {
154
152
  React.createElement(GlobalTroubleshootEffects, { routeProps: props.routeProps }),
155
153
  activeSection !== AppRouteSections.DESCRIBE_IDEA && (React.createElement(PreCaseConfirmationModals, { onModalClose: onModalClose, confirmationModalType: confirmationModalType, onConfirm: () => submitCaseAndNavigate(caseCreationError) })),
156
154
  React.createElement(Grid, { style: { height: '100%' } },
157
- React.createElement(GridItem, { sm: 12, md: 12, lg: isAIChatMode ? 12 : 8, xl2: isAIChatMode ? 12 : 8 },
158
- React.createElement(WizardMain, { routeProps: props.routeProps, submitCaseAndNavigate: submitCaseAndNavigate, confirmSupportModal: confirmSupportModal, isAIChatMode: isAIChatMode, setIsAIChatMode: setIsAIChatMode, isSecureSupport: (_a = loggedInUsersAccount === null || loggedInUsersAccount === void 0 ? void 0 : loggedInUsersAccount.data) === null || _a === void 0 ? void 0 : _a.secureSupport, hasConfirmedStatesideSupport: (_b = loggedInUsersAccount === null || loggedInUsersAccount === void 0 ? void 0 : loggedInUsersAccount.data) === null || _b === void 0 ? void 0 : _b.hasConfirmedStatesideSupport })),
159
- !isAIChatMode && (React.createElement(GridItem, { span: 4, className: "grid-wizard-aside-content" },
160
- React.createElement(WizardAside, { isAttachmentUploadModalOpen: confirmationModalType === PreCaseConfirmationModalsEnum.NO_ATTACHMENT_MODAL, routeProps: props.routeProps })))),
155
+ React.createElement(GridItem, { sm: 12, md: 12, lg: 8, xl2: 8 },
156
+ React.createElement(WizardMain, { routeProps: props.routeProps, submitCaseAndNavigate: submitCaseAndNavigate, confirmSupportModal: confirmSupportModal })),
157
+ React.createElement(GridItem, { span: 4, className: "grid-wizard-aside-content" },
158
+ React.createElement(WizardAside, { isAttachmentUploadModalOpen: confirmationModalType === PreCaseConfirmationModalsEnum.NO_ATTACHMENT_MODAL, routeProps: props.routeProps }))),
161
159
  React.createElement(AlertToastWrapper, { submitCaseAndNavigate: submitCaseAndNavigate, routeProps: props.routeProps })));
162
160
  }
@@ -1,14 +1,10 @@
1
- import React, { Dispatch, SetStateAction } from 'react';
1
+ import React from 'react';
2
2
  import { RouteComponentProps } from 'react-router-dom';
3
3
  import { IRouteUrlParams } from '../../reducers/RouteConstNTypes';
4
4
  interface IProps {
5
5
  routeProps: RouteComponentProps<IRouteUrlParams>;
6
6
  submitCaseAndNavigate: (isReSubmitting: boolean) => void;
7
7
  confirmSupportModal: (hasPreferredSecureSupportAccount: boolean) => void;
8
- isAIChatMode: boolean;
9
- setIsAIChatMode: Dispatch<SetStateAction<boolean>>;
10
- isSecureSupport?: boolean;
11
- hasConfirmedStatesideSupport?: boolean;
12
8
  }
13
9
  declare function WizardMain(props: IProps): React.JSX.Element;
14
10
  export default WizardMain;
@@ -1 +1 @@
1
- {"version":3,"file":"WizardMain.d.ts","sourceRoot":"","sources":["../../../../src/components/wizardLayout/WizardMain.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAqD,MAAM,OAAO,CAAC;AAE3G,OAAO,EAAS,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAU9D,OAAO,EAAoB,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAyCpF,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;CAC1C;AAED,iBAAS,UAAU,CAAC,KAAK,EAAE,MAAM,qBA+ThC;AACD,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"WizardMain.d.ts","sourceRoot":"","sources":["../../../../src/components/wizardLayout/WizardMain.tsx"],"names":[],"mappings":"AAUA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAEjF,OAAO,EAAS,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAO9D,OAAO,EAAoB,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAOpF,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;CAC5E;AAED,iBAAS,UAAU,CAAC,KAAK,EAAE,MAAM,qBAwMhC;AACD,eAAe,UAAU,CAAC"}
@@ -1,12 +1,3 @@
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
1
  var __rest = (this && this.__rest) || function (s, e) {
11
2
  var t = {};
12
3
  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
@@ -18,21 +9,16 @@ var __rest = (this && this.__rest) || function (s, e) {
18
9
  }
19
10
  return t;
20
11
  };
21
- import { Env } from '@cee-eng/hydrajs';
22
- import { askRHDirectAIResponse, getRHDirectStatusCheck, } from '@ifd-ui/ask-redhat-core';
23
- import { useWizardContext, Wizard, WizardNav, WizardNavItem, WizardStep } from '@patternfly/react-core';
12
+ import { Wizard, WizardNav, WizardNavItem, WizardStep, } from '@patternfly/react-core';
24
13
  import { LoadingIndicator } from '@rh-support/components';
25
14
  import isEqual from 'lodash/isEqual';
26
15
  import React, { Suspense, useContext, useEffect, useRef, useState } from 'react';
27
16
  import { useTranslation } from 'react-i18next';
28
17
  import { Route } from 'react-router-dom';
29
- import { useAIResponseDispatch } from '../../context/AIResponseContext';
30
18
  import { useCaseSelector } from '../../context/CaseContext';
31
19
  import { RecommendationDispatchContext } from '../../context/RecommendationContext';
32
20
  import { RouteContext, RouteDispatchContext } from '../../context/RouteContext';
33
21
  import { useWizard } from '../../hooks/useWizard';
34
- import { receivedAIResponse, receivedAIResponseError, requestAIResponse } from '../../reducers/AIResponseReducer';
35
- import { appSourceId_ARH, excludedCaseTypesforARH } from '../../reducers/CaseConstNTypes';
36
22
  import { RecommendationsConstants } from '../../reducers/RecommendationsReducer';
37
23
  import { AppRouteSections } from '../../reducers/RouteConstNTypes';
38
24
  import { setActiveSectionChanged, updateisNextBtnClickedToShowValidationError } from '../../reducers/RouteReducer';
@@ -41,54 +27,22 @@ import SubmitCase from '../SubmitCase/SubmitCase';
41
27
  import MainSection from './MainSection';
42
28
  import NewFeatureModal from './NewFeatureModal';
43
29
  import WizardNavigation from './WizardNavigation';
44
- // Mapping for case type display text in AI questions
45
- const CASE_TYPE_AI_TEXT_MAP = {
46
- Other: 'Something',
47
- };
48
- const getCaseTypeAIText = (caseType) => {
49
- return CASE_TYPE_AI_TEXT_MAP[caseType] || caseType;
50
- };
51
- const generateCaseTypePrefix = (activeSection, caseType) => {
52
- if (activeSection === AppRouteSections.TROUBLESHOOT) {
53
- return '';
54
- }
55
- const helpWith = getCaseTypeAIText(caseType);
56
- return `I want help with ${helpWith}. `;
57
- };
58
- //generate AI question based on case details
59
- const generateAIQuestion = (activeSection, product, version, summary, issue, caseType) => {
60
- const baseMessage = `My issue is primarily related to ${product} ${version}. I would title my problem: ${summary}. More details are as follows: ${issue}.`;
61
- const prefix = generateCaseTypePrefix(activeSection, caseType);
62
- return `${prefix}${baseMessage}`;
63
- };
64
30
  function WizardMain(props) {
65
31
  const [showRestFlag, setShowRestFlag] = useState(false);
66
- const [aiServicesAvailable, setAIServicesAvailable] = useState(false); // default to false until services are confirmed available
67
32
  const recommendationDispatch = useContext(RecommendationDispatchContext);
68
- const { isCreatingCase, product, version, summary, issue, caseType } = useCaseSelector((state) => ({
33
+ const { isCreatingCase } = useCaseSelector((state) => ({
69
34
  isCreatingCase: state.isCreatingCase,
70
- product: state.caseDetails.product,
71
- version: state.caseDetails.version,
72
- summary: state.caseDetails.summary,
73
- issue: state.caseDetails.issue,
74
- caseType: state.caseDetails.caseType,
75
35
  }), isEqual);
76
- const { routeState: { isCaseCreate, activeSection }, } = useContext(RouteContext);
77
- const aiResponseDispatch = useAIResponseDispatch();
78
- const isTroubleshootSection = activeSection === AppRouteSections.TROUBLESHOOT;
79
- const isResourcesSection = activeSection === AppRouteSections.RESOURCES;
80
- const isSummarizeSection = activeSection === AppRouteSections.SUMMARIZE;
36
+ const { routeState: { isCaseCreate }, } = useContext(RouteContext);
81
37
  const [userSeenRecommendations, setUserSeenRecommendations] = useState(false);
82
38
  const [userClickedNextonRecommendations, setUserClickedNextonRecommendations] = useState(false);
83
39
  const [userScrolledLabel, setUserScrolledLabel] = useState(false);
84
40
  const [userCanNavigateToTroubleshoot, setUserCanNavigateToTroubleshoot] = useState(false);
41
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
85
42
  const [isNextButtonClicked, setIsNextButtonClicked] = useState(false);
86
43
  const isNextButtonClickedRef = useRef(false);
87
44
  const isBackButtonClickedRef = useRef(false);
88
45
  const resultsRowRef = useRef(null);
89
- const handleChatWithAIClick = () => {
90
- props.setIsAIChatMode(true);
91
- };
92
46
  const { getStepsSequece } = useWizard(props.routeProps, {
93
47
  userSeenRecommendationsfn: setUserSeenRecommendations,
94
48
  userSeenRecommendationsValue: userSeenRecommendations,
@@ -96,66 +50,12 @@ function WizardMain(props) {
96
50
  userClickedNextonRecommendationsValue: userClickedNextonRecommendations,
97
51
  resultsRowRef: resultsRowRef,
98
52
  userScrolledLabel: userScrolledLabel,
99
- isAIChatMode: props.isAIChatMode,
100
- setIsAIChatMode: props.setIsAIChatMode,
101
- onChatWithAIClick: handleChatWithAIClick,
102
- aiServicesAvailable: aiServicesAvailable,
103
- isSecureSupport: props.isSecureSupport,
104
- hasConfirmedStatesideSupport: props.hasConfirmedStatesideSupport,
105
53
  });
106
54
  const dispatchToRouteReducer = useContext(RouteDispatchContext);
107
55
  const { t } = useTranslation();
108
56
  useEffect(() => {
109
57
  setActiveSectionChanged(dispatchToRouteReducer, isCaseCreate ? AppRouteSections.GET_SUPPORT : AppRouteSections.TROUBLESHOOT, '');
110
58
  }, [isCaseCreate, dispatchToRouteReducer]);
111
- const shouldEnableARHServices = () => {
112
- // Check if the current section is relevant for AI services
113
- const isRelevantSection = isTroubleshootSection || isSummarizeSection || isResourcesSection;
114
- // Check if the case type is allowed (not in the excluded list)
115
- const isCaseTypeAllowed = !excludedCaseTypesforARH.includes(caseType || '');
116
- // Check if user is not a secure support or confirmed stateside support user
117
- const isNotSecureOrStatesideUser = !props.isSecureSupport && !props.hasConfirmedStatesideSupport;
118
- return isRelevantSection && isCaseTypeAllowed && isNotSecureOrStatesideUser;
119
- };
120
- useEffect(() => {
121
- if (!activeSection) {
122
- return;
123
- }
124
- if (!shouldEnableARHServices()) {
125
- if (aiServicesAvailable) {
126
- setAIServicesAvailable(false);
127
- }
128
- return;
129
- }
130
- // check if ARH services are available
131
- if (!aiServicesAvailable) {
132
- const checkAIServices = () => __awaiter(this, void 0, void 0, function* () {
133
- var _a, _b, _c;
134
- const config = {
135
- appSourceId: appSourceId_ARH,
136
- authToken: (_b = (_a = window === null || window === void 0 ? void 0 : window.sessionjs) === null || _a === void 0 ? void 0 : _a.getEncodedToken()) !== null && _b !== void 0 ? _b : '',
137
- packageVersion: (_c = window === null || window === void 0 ? void 0 : window.supportVersionInfo) === null || _c === void 0 ? void 0 : _c.packageVersion,
138
- appEnv: Env.getEnvName(),
139
- };
140
- try {
141
- yield getRHDirectStatusCheck(config);
142
- setAIServicesAvailable(true);
143
- }
144
- catch (error) {
145
- setAIServicesAvailable(false);
146
- }
147
- });
148
- checkAIServices();
149
- }
150
- // eslint-disable-next-line react-hooks/exhaustive-deps
151
- }, [
152
- activeSection,
153
- caseType,
154
- isCaseCreate,
155
- aiServicesAvailable,
156
- props.isSecureSupport,
157
- props.hasConfirmedStatesideSupport,
158
- ]);
159
59
  const renderSubmitCasePage = () => (React.createElement(MainSection, { section: AppRouteSections.SUBMIT_CASE, title: t('Case has been submitted'), isLoading: isCreatingCase, description: t("We'll be in contact with you shortly. Look for updates on this case."), className: "case-submit-page" },
160
60
  React.createElement(Suspense, { fallback: React.createElement(LoadingIndicator, { size: "sm" }) },
161
61
  React.createElement(SubmitCase, { routeProps: props.routeProps }))));
@@ -200,55 +100,26 @@ function WizardMain(props) {
200
100
  isBackButtonClickedRef.current = false;
201
101
  setIsNextButtonClicked(false);
202
102
  };
203
- const handleReturnToCaseCreation = () => {
204
- props.setIsAIChatMode(false);
205
- };
206
103
  const customNav = (isExpanded, steps, activeStep, goToStepByIndex) => (React.createElement(WizardNav, { isExpanded: isExpanded }, steps.map((step) => {
207
104
  return (React.createElement(WizardNavItem, { key: step.id, id: step.id, content: step.name, isCurrent: activeStep.id === step.id, isDisabled: !step.canJumpTo, stepIndex: step.index, onClick: () => goToStepByIndex(step.index) }));
208
105
  })));
209
- const CustomFooter = () => {
210
- var _a, _b, _c;
211
- const { activeStep, goToNextStep, goToPrevStep, steps, goToStepByIndex } = useWizardContext(); // Correctly using the context
212
- const config = {
213
- appSourceId: appSourceId_ARH,
214
- authToken: (_b = (_a = window === null || window === void 0 ? void 0 : window.sessionjs) === null || _a === void 0 ? void 0 : _a.getEncodedToken()) !== null && _b !== void 0 ? _b : '',
215
- packageVersion: (_c = window === null || window === void 0 ? void 0 : window.supportVersionInfo) === null || _c === void 0 ? void 0 : _c.packageVersion,
216
- appEnv: Env.getEnvName(),
217
- };
106
+ const CustomFooter = (activeStep, goToNextStep, goToPrevStep) => {
218
107
  useEffect(() => {
219
- if (steps.length > 2 && activeStep.index === 2 && isNextButtonClicked) {
220
- goToStepByIndex(3);
108
+ if (steps.length > 2 && (activeStep === null || activeStep === void 0 ? void 0 : activeStep.index) === 2 && isNextButtonClicked) {
109
+ goToNextStep({});
221
110
  }
222
- }, [activeStep, steps.length, goToStepByIndex]);
223
- const fetchARHResponse = () => __awaiter(this, void 0, void 0, function* () {
224
- const detailedQuestion = generateAIQuestion(activeSection || '', product, version, summary, issue, caseType || '');
225
- // Dispatch request started action
226
- aiResponseDispatch(requestAIResponse(detailedQuestion));
227
- try {
228
- const response = yield askRHDirectAIResponse(detailedQuestion, config);
229
- aiResponseDispatch(receivedAIResponse(response));
230
- }
231
- catch (error) {
232
- const errorMessage = error instanceof Error ? error.message : 'Failed to get AI response';
233
- aiResponseDispatch(receivedAIResponseError(errorMessage));
234
- }
235
- });
236
- const handleContinueClick = () => __awaiter(this, void 0, void 0, function* () {
237
- // Navigate to next step first
238
- isNextButtonClickedRef.current = true;
239
- setIsNextButtonClicked(true);
240
- goToNextStep();
241
- focusWizardMainPanel();
242
- // Fetch ARH response if conditions are met
243
- if (shouldEnableARHServices() && aiServicesAvailable) {
244
- yield fetchARHResponse();
245
- }
246
- });
247
- return (React.createElement(WizardNavigation, { routeProps: props.routeProps, onNext: handleContinueClick, onBack: () => {
111
+ // eslint-disable-next-line react-hooks/exhaustive-deps
112
+ }, [activeStep, steps.length, isNextButtonClicked, goToNextStep]);
113
+ return (React.createElement(WizardNavigation, { routeProps: props.routeProps, onNext: (e) => {
114
+ isNextButtonClickedRef.current = true;
115
+ setIsNextButtonClicked(true);
116
+ goToNextStep(e);
117
+ focusWizardMainPanel();
118
+ }, onBack: (e) => {
248
119
  isBackButtonClickedRef.current = true;
249
- goToPrevStep();
120
+ goToPrevStep(e);
250
121
  focusWizardMainPanel();
251
- }, activeStep: activeStep, onSubmit: onSubmit, confirmSupportModal: props.confirmSupportModal, onShowRestUpdate: (flag) => setShowRestFlag(flag), userSeenRecommendations: userSeenRecommendations, setUserSeenRecommendations: setUserSeenRecommendations, userClickedNextonRecommendationsFn: setUserClickedNextonRecommendations, userClickedNextonRecommendationsValue: userClickedNextonRecommendations, setUserCanNavigateToTroubleshoot: setUserCanNavigateToTroubleshoot, resultsRowRef: resultsRowRef, setUserScrolledLabel: setUserScrolledLabel, isAIChatMode: props.isAIChatMode, onReturnToCaseCreation: handleReturnToCaseCreation }));
122
+ }, activeStep: activeStep, onSubmit: onSubmit, confirmSupportModal: props.confirmSupportModal, onShowRestUpdate: (flag) => setShowRestFlag(flag), userSeenRecommendations: userSeenRecommendations, setUserSeenRecommendations: setUserSeenRecommendations, userClickedNextonRecommendationsFn: setUserClickedNextonRecommendations, userClickedNextonRecommendationsValue: userClickedNextonRecommendations, setUserCanNavigateToTroubleshoot: setUserCanNavigateToTroubleshoot, resultsRowRef: resultsRowRef, setUserScrolledLabel: setUserScrolledLabel }));
252
123
  };
253
124
  const steps = getStepsSequece(showRestFlag);
254
125
  const wizardSteps = steps.map((step) => {
@@ -259,7 +130,7 @@ function WizardMain(props) {
259
130
  // in useWizard file then add it to step squences in RouteConstNTypes
260
131
  return (React.createElement(React.Fragment, null,
261
132
  React.createElement(NewFeatureModal, null),
262
- steps.length !== 0 && (React.createElement(Route, { path: `${RouteUtils.seBasePath}/(${steps[0].id}|describe-issue|open-case)`, render: () => (React.createElement(Wizard, { isVisitRequired: true, nav: customNav, navAriaLabel: ` navAriaLabel steps `, footer: React.createElement(CustomFooter, null), onStepChange: onCurrentStepChanged }, wizardSteps)) })),
133
+ steps.length !== 0 && (React.createElement(Route, { path: `${RouteUtils.seBasePath}/(${steps[0].id}|describe-issue|open-case)`, render: () => (React.createElement(Wizard, { isVisitRequired: true, nav: customNav, navAriaLabel: ` navAriaLabel steps `, footer: CustomFooter, onStepChange: onCurrentStepChanged }, wizardSteps)) })),
263
134
  React.createElement(Route, { exact: true, path: `${RouteUtils.seBasePath}/${AppRouteSections.SUBMIT_CASE}`, render: () => renderSubmitCasePage() })));
264
135
  }
265
136
  export default WizardMain;
@@ -3,8 +3,8 @@ import { RouteComponentProps } from 'react-router-dom';
3
3
  import { IRouteUrlParams, ISectionConfiguration } from '../../reducers/RouteConstNTypes';
4
4
  interface IProps {
5
5
  routeProps: RouteComponentProps<IRouteUrlParams>;
6
- onNext: () => void;
7
- onBack: () => void;
6
+ onNext: (e: React.MouseEvent<HTMLButtonElement>) => void;
7
+ onBack: (e: React.MouseEvent<HTMLButtonElement>) => void;
8
8
  activeStep: Partial<ISectionConfiguration>;
9
9
  onSubmit: () => void;
10
10
  confirmSupportModal: (hasPreferredSecureSupportAccount: boolean) => void;
@@ -16,8 +16,6 @@ interface IProps {
16
16
  setUserCanNavigateToTroubleshoot: (value: React.SetStateAction<boolean>) => void;
17
17
  resultsRowRef?: any;
18
18
  setUserScrolledLabel: (value: React.SetStateAction<boolean>) => void;
19
- isAIChatMode?: boolean;
20
- onReturnToCaseCreation?: () => void;
21
19
  }
22
20
  declare function WizardNavigation(props: IProps): React.JSX.Element;
23
21
  declare namespace WizardNavigation {
@@ -1 +1 @@
1
- {"version":3,"file":"WizardNavigation.d.ts","sourceRoot":"","sources":["../../../../src/components/wizardLayout/WizardNavigation.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAEvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAOvD,OAAO,EAAoB,eAAe,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAM3G,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,gCAAgC,EAAE,OAAO,KAAK,IAAI,CAAC;IACzE,gBAAgB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,0BAA0B,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;IAC5E,kCAAkC,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;IACpF,qCAAqC,CAAC,EAAE,OAAO,CAAC;IAChD,gCAAgC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;IACjF,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,oBAAoB,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;IACrE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,sBAAsB,CAAC,EAAE,MAAM,IAAI,CAAC;CACvC;AAGD,iBAAS,gBAAgB,CAAC,KAAK,EAAE,MAAM,qBAiVtC;kBAjVQ,gBAAgB;;;AAmVzB,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"WizardNavigation.d.ts","sourceRoot":"","sources":["../../../../src/components/wizardLayout/WizardNavigation.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAEvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAOvD,OAAO,EAAoB,eAAe,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAM3G,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACjD,MAAM,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IACzD,MAAM,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IACzD,UAAU,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC3C,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,mBAAmB,EAAE,CAAC,gCAAgC,EAAE,OAAO,KAAK,IAAI,CAAC;IACzE,gBAAgB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,0BAA0B,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;IAC5E,kCAAkC,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;IACpF,qCAAqC,CAAC,EAAE,OAAO,CAAC;IAChD,gCAAgC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;IACjF,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,oBAAoB,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;CACxE;AAGD,iBAAS,gBAAgB,CAAC,KAAK,EAAE,MAAM,qBA8UtC;kBA9UQ,gBAAgB;;;AAgVzB,eAAe,gBAAgB,CAAC"}
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  };
10
10
  import { pcm } from '@cee-eng/hydrajs';
11
11
  import { Button, ButtonVariant, WizardFooterWrapper } from '@patternfly/react-core';
12
- import { useFetch } from '@rh-support/components';
12
+ import { useFetch, usePrevious } from '@rh-support/components';
13
13
  import { GlobalMetadataStateContext, useCanCreateCase } from '@rh-support/react-context';
14
14
  import { dtmTrackEventCaseCreationStepEncountered, getResTypeFromUrl, PreviousToNewCaseTypeMap, scrollIntoView, } from '@rh-support/utils';
15
15
  import find from 'lodash/find';
@@ -51,6 +51,7 @@ function WizardNavigation(props) {
51
51
  const { activeSectionError, isSectionValidFn } = useIsSectionValid(activeSection);
52
52
  const [isRecsModalVisible, setIsRecsModalVisible] = useState(false);
53
53
  const previousRecommendationTop = useRef(0);
54
+ const previousStep = usePrevious(props.activeStep);
54
55
  const { request: resolveSessionRequest } = useFetch(pcm.preCase.session.resolveSession);
55
56
  const { sessionRestore: { activeSessionId, sessionResourceTracking }, } = useContext(SessionRestoreStateContext);
56
57
  const { SessionResourceSource } = pcm.preCase.session;
@@ -59,12 +60,15 @@ function WizardNavigation(props) {
59
60
  }), isEqual);
60
61
  const caseDispatch = useCaseDispatch();
61
62
  useEffect(() => {
62
- var _a;
63
+ var _a, _b;
64
+ if ((previousStep === null || previousStep === void 0 ? void 0 : previousStep.id) === ((_a = props.activeStep) === null || _a === void 0 ? void 0 : _a.id)) {
65
+ return;
66
+ }
63
67
  const isCreatingCase = RouteUtils.getQueryParams(props.routeProps).caseCreate === 'true';
64
68
  dtmTrackEventCaseCreationStepEncountered(isCreatingCase,
65
69
  // @ts-ignore
66
70
  props.activeStep.name, props.activeStep.id === AppRouteSections.GET_SUPPORT ||
67
- props.activeStep.id === AppRouteSections.TROUBLESHOOT, (_a = caseState.caseDetails) === null || _a === void 0 ? void 0 : _a.caseNumber, PreviousToNewCaseTypeMap[caseState.caseDetails.caseType], caseState.caseDetails.summary, caseState.caseDetails.product, caseState.caseDetails.version);
71
+ props.activeStep.id === AppRouteSections.TROUBLESHOOT, (_b = caseState.caseDetails) === null || _b === void 0 ? void 0 : _b.caseNumber, PreviousToNewCaseTypeMap[caseState.caseDetails.caseType], caseState.caseDetails.summary, caseState.caseDetails.product, caseState.caseDetails.version);
68
72
  if (props.activeStep.id === AppRouteSections.RESOURCES) {
69
73
  window.scrollTo({
70
74
  top: 0,
@@ -72,7 +76,7 @@ function WizardNavigation(props) {
72
76
  });
73
77
  }
74
78
  // eslint-disable-next-line react-hooks/exhaustive-deps
75
- }, [props.activeStep.id]);
79
+ }, [previousStep === null || previousStep === void 0 ? void 0 : previousStep.id, props.activeStep.id]);
76
80
  const [hasUserScrolled, setHasUserScrolled] = useState(false);
77
81
  useEffect(() => {
78
82
  if (props.activeStep.id !== (isCaseCreate ? AppRouteSections.SUMMARIZE : AppRouteSections.TROUBLESHOOT) ||
@@ -135,7 +139,7 @@ function WizardNavigation(props) {
135
139
  }
136
140
  };
137
141
  }, [recommendationState.numFound, hasUserScrolled, props, isCaseCreate]);
138
- const onNext = () => {
142
+ const onNext = (e) => {
139
143
  var _a;
140
144
  updateisNextBtnClickedToShowValidationError(dispatchToRouteReducer, true);
141
145
  //handle the new changes for 13406:
@@ -171,19 +175,19 @@ function WizardNavigation(props) {
171
175
  // to show all steps, a delay needed in order to steps array
172
176
  // to be updated
173
177
  window.setTimeout(() => {
174
- props.onNext && props.onNext();
178
+ props.onNext && props.onNext(e);
175
179
  }, 10);
176
180
  }
177
181
  else {
178
- props.onNext && props.onNext();
182
+ props.onNext && props.onNext(e);
179
183
  }
180
184
  }
181
185
  return;
182
186
  };
183
- const onBack = () => {
187
+ const onBack = (e) => {
184
188
  if (props.activeStep.hidRestOnBack)
185
189
  props.onShowRestUpdate(false);
186
- props.onBack();
190
+ props.onBack(e);
187
191
  };
188
192
  const onRecsFeedbackModalToggle = () => {
189
193
  setIsRecsModalVisible((visible) => !visible);
@@ -249,10 +253,9 @@ function WizardNavigation(props) {
249
253
  // To handle entitled products
250
254
  return (React.createElement(React.Fragment, null,
251
255
  React.createElement(WizardFooterWrapper, null,
252
- props.isAIChatMode ? (React.createElement(Button, { onClick: props.onReturnToCaseCreation, variant: "link", className: "return-to-case-btn" }, t('Return to case creation'))) : (React.createElement(React.Fragment, null,
253
- 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}`, type: "button", disabled: isDisabledGoBack() }, t('Go back'))),
254
- React.createElement("button", { disabled: nextButtonDisabledLogic(), onClick: onNext, className: "btn btn-app btn-primary main-nav-button", "data-tracking-id": `next-of-${activeSection}`, type: "button" }, t(props.activeStep.nextButtonLabel)),
255
- activeSection === AppRouteSections.RESOURCES && 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'))))),
256
+ 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}`, type: "button", disabled: isDisabledGoBack() }, t('Go back'))),
257
+ React.createElement("button", { disabled: nextButtonDisabledLogic(), onClick: onNext, className: "btn btn-app btn-primary main-nav-button", "data-tracking-id": `next-of-${activeSection}`, type: "button" }, t(props.activeStep.nextButtonLabel)),
258
+ activeSection === AppRouteSections.RESOURCES && 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'))),
256
259
  React.createElement(RecommendationFeedbackModal, { isModalOpen: isRecsModalVisible, handleModalToggle: onRecsFeedbackModalToggle, modalContent: t(`Great, we're glad that resolved your issue`) }),
257
260
  activeSectionError ? (React.createElement("small", { className: "pf-v6-u-align-self-center pf-v6-u-ml-md text-red" }, activeSectionError)) : null)));
258
261
  }
@@ -2,7 +2,6 @@ import 'react-bootstrap-typeahead/css/Typeahead.css';
2
2
  import '../../css/app.css';
3
3
  import '../../css/pagination.css';
4
4
  import '../../css/productSelector.css';
5
- import '../../css/AskRedHat.css';
6
5
  import '../../css/results.css';
7
6
  import '../shared/fileUpload/css/fileSelector.css';
8
7
  import React from 'react';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/wizardLayout/index.tsx"],"names":[],"mappings":"AAAA,OAAO,6CAA6C,CAAC;AACrD,OAAO,mBAAmB,CAAC;AAC3B,OAAO,0BAA0B,CAAC;AAClC,OAAO,+BAA+B,CAAC;AACvC,OAAO,yBAAyB,CAAC;AACjC,OAAO,uBAAuB,CAAC;AAC/B,OAAO,2CAA2C,CAAC;AAGnD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAIvD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAGlE,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACjD,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,MAAM;QACZ,SAAS,EAAE,GAAG,CAAC;QACf,oBAAoB,EAAE,GAAG,CAAC;QAC1B,MAAM,EAAE,GAAG,CAAC;QACZ,KAAK,EAAE,GAAG,CAAC;QACX,aAAa,EAAE;YACX,cAAc,EAAE,MAAM,CAAC;YACvB,OAAO,EAAE,MAAM,CAAC;SACnB,CAAC;KACL;IAED,UAAU,QAAQ;QACd,YAAY,EAAE,GAAG,CAAC;KACrB;CACJ;AAED,eAAO,MAAM,YAAY,UAAW,MAAM,sBAYzC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/wizardLayout/index.tsx"],"names":[],"mappings":"AAAA,OAAO,6CAA6C,CAAC;AACrD,OAAO,mBAAmB,CAAC;AAC3B,OAAO,0BAA0B,CAAC;AAClC,OAAO,+BAA+B,CAAC;AACvC,OAAO,uBAAuB,CAAC;AAC/B,OAAO,2CAA2C,CAAC;AAGnD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAIvD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAGlE,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACjD,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,MAAM;QACZ,SAAS,EAAE,GAAG,CAAC;QACf,oBAAoB,EAAE,GAAG,CAAC;QAC1B,MAAM,EAAE,GAAG,CAAC;QACZ,KAAK,EAAE,GAAG,CAAC;QACX,aAAa,EAAE;YACX,cAAc,EAAE,MAAM,CAAC;YACvB,OAAO,EAAE,MAAM,CAAC;SACnB,CAAC;KACL;IAED,UAAU,QAAQ;QACd,YAAY,EAAE,GAAG,CAAC;KACrB;CACJ;AAED,eAAO,MAAM,YAAY,UAAW,MAAM,sBAYzC,CAAC"}
@@ -2,7 +2,6 @@ import 'react-bootstrap-typeahead/css/Typeahead.css';
2
2
  import '../../css/app.css';
3
3
  import '../../css/pagination.css';
4
4
  import '../../css/productSelector.css';
5
- import '../../css/AskRedHat.css';
6
5
  import '../../css/results.css';
7
6
  import '../shared/fileUpload/css/fileSelector.css';
8
7
  import { useDocumentTitle } from '@rh-support/components';
@@ -1 +1 @@
1
- {"version":3,"file":"RootTroubleshootProvider.d.ts","sourceRoot":"","sources":["../../../src/context/RootTroubleshootProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAY1B,UAAU,MAAM;IACZ,QAAQ,EAAE,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;CACzC;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,qBAoBrD"}
1
+ {"version":3,"file":"RootTroubleshootProvider.d.ts","sourceRoot":"","sources":["../../../src/context/RootTroubleshootProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAW1B,UAAU,MAAM;IACZ,QAAQ,EAAE,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;CACzC;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,qBAkBrD"}
@@ -1,6 +1,5 @@
1
1
  import React from 'react';
2
2
  import { AttachmentContextProvider } from '../components/shared/fileUpload/reducer/AttachmentReducerContext';
3
- import { AIResponseContextProvider } from './AIResponseContext';
4
3
  import { CaseContextProvider } from './CaseContext';
5
4
  import { ClusterRecommendationsContextProvider } from './ClusterRecommendationsContext';
6
5
  import { RecommendationContextProvider } from './RecommendationContext';
@@ -11,11 +10,10 @@ import { TCContextProvider } from './TopContentContext';
11
10
  export function RootTroubleshootProvider(props) {
12
11
  return (React.createElement(RouteContextProvider, null,
13
12
  React.createElement(CaseContextProvider, null,
14
- React.createElement(AIResponseContextProvider, null,
15
- React.createElement(RecommendationContextProvider, null,
16
- React.createElement(AttachmentContextProvider, null,
17
- React.createElement(RulesContextProvider, null,
18
- React.createElement(ClusterRecommendationsContextProvider, null,
19
- React.createElement(TCContextProvider, null,
20
- React.createElement(SessionRestoreContextProvider, null, props.children))))))))));
13
+ React.createElement(RecommendationContextProvider, null,
14
+ React.createElement(AttachmentContextProvider, null,
15
+ React.createElement(RulesContextProvider, null,
16
+ React.createElement(ClusterRecommendationsContextProvider, null,
17
+ React.createElement(TCContextProvider, null,
18
+ React.createElement(SessionRestoreContextProvider, null, props.children)))))))));
21
19
  }
@@ -91,10 +91,6 @@ form textarea.form-control:focus {
91
91
  border-bottom-color: #06c;
92
92
  }
93
93
 
94
- form textarea {
95
- resize: vertical !important;
96
- }
97
-
98
94
  .pf-v6-c-form-control.pf-m-warning {
99
95
  border-bottom-color: var(--pf-v5-c-form-control--m-warning--BorderBottomColor);
100
96
  border-bottom-width: 2px;
@@ -345,6 +341,7 @@ input[type='checkbox'] {
345
341
 
346
342
  .list-flushleft li {
347
343
  margin-bottom: 0.5em;
344
+ list-style-type: none;
348
345
  }
349
346
 
350
347
  .list-flushleft li:last-child {
@@ -448,3 +445,7 @@ input[type='checkbox'] {
448
445
  row-gap: 9px;
449
446
  line-height: 2px;
450
447
  }
448
+
449
+ #additional-information-section textarea {
450
+ resize: none !important;
451
+ }
@@ -363,3 +363,15 @@ input[aria-invalid='true'].pf-v6-c-form-control {
363
363
  min-width: 552px;
364
364
  }
365
365
  }
366
+
367
+ #reopen-case-description {
368
+ resize: none !important;
369
+ }
370
+
371
+ .add-watcher-button {
372
+ max-width: 15rem;
373
+ }
374
+
375
+ .remove-watcher-button {
376
+ max-width: 15rem;
377
+ }
@@ -41,11 +41,11 @@
41
41
  }
42
42
 
43
43
  .recommendation-list {
44
- margin-top: 2rem;
44
+ margin-top: 26px;
45
45
  }
46
46
 
47
47
  .recommendation-list .result {
48
- margin-bottom: 1.75rem;
48
+ margin-bottom: 18px;
49
49
  }
50
50
 
51
51
  .recommendation-list .result:last-child {
@@ -5,12 +5,6 @@ interface IProps {
5
5
  userClickedNextonRecommendationsValue: boolean;
6
6
  resultsRowRef: any;
7
7
  userScrolledLabel: boolean;
8
- isAIChatMode: boolean;
9
- setIsAIChatMode: (value: boolean) => void;
10
- onChatWithAIClick?: () => void;
11
- aiServicesAvailable: boolean;
12
- isSecureSupport?: boolean;
13
- hasConfirmedStatesideSupport?: boolean;
14
8
  }
15
9
  export declare function useWizard(routeProps: any, props?: IProps): {
16
10
  getStepsSequece: (showRest?: boolean) => any;
@@ -1 +1 @@
1
- {"version":3,"file":"useWizard.d.ts","sourceRoot":"","sources":["../../../src/hooks/useWizard.tsx"],"names":[],"mappings":"AA+BA,UAAU,MAAM;IACZ,yBAAyB,CAAC,EAAE,GAAG,CAAC;IAChC,4BAA4B,EAAE,OAAO,CAAC;IACtC,6BAA6B,EAAE,OAAO,CAAC;IACvC,qCAAqC,EAAE,OAAO,CAAC;IAC/C,aAAa,EAAE,GAAG,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,YAAY,EAAE,OAAO,CAAC;IACtB,eAAe,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,4BAA4B,CAAC,EAAE,OAAO,CAAC;CAC1C;AAED,wBAAgB,SAAS,CAAC,UAAU,KAAA,EAAE,KAAK,CAAC,EAAE,MAAM;iCAkRb,OAAO;EAwC7C"}
1
+ {"version":3,"file":"useWizard.d.ts","sourceRoot":"","sources":["../../../src/hooks/useWizard.tsx"],"names":[],"mappings":"AA+BA,UAAU,MAAM;IACZ,yBAAyB,CAAC,EAAE,GAAG,CAAC;IAChC,4BAA4B,EAAE,OAAO,CAAC;IACtC,6BAA6B,EAAE,OAAO,CAAC;IACvC,qCAAqC,EAAE,OAAO,CAAC;IAC/C,aAAa,EAAE,GAAG,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;CAC9B;AAED,wBAAgB,SAAS,CAAC,UAAU,KAAA,EAAE,KAAK,CAAC,EAAE,MAAM;iCA2Qb,OAAO;EAwC7C"}
@@ -68,7 +68,7 @@ export function useWizard(routeProps, props) {
68
68
  [AppRouteSections.RESOURCES]: Object.assign(Object.assign({}, defaultRouteConfiguration), { id: AppRouteSections.RESOURCES, name: isCaseCreate ? t('Resources') : t('Resources'), component: (React.createElement(MainSection, { stepNumber: 3, totalSteps: 6, section: AppRouteSections.RESOURCES, title: t('Recommendations') },
69
69
  React.createElement(Suspense, { fallback: React.createElement(LoadingIndicator, { size: "sm" }) },
70
70
  alertMessage(),
71
- React.createElement(TroubleshootSection, { isAIChatMode: props.isAIChatMode, setIsAIChatMode: props.setIsAIChatMode, onChatWithAIClick: props.onChatWithAIClick, aiServicesAvailable: props.aiServicesAvailable, isSecureSupport: props.isSecureSupport, hasConfirmedStatesideSupport: props.hasConfirmedStatesideSupport })))), canJumpTo: isSectionValidFn(AppRouteSections.RESOURCES || activeSection === AppRouteSections.RESOURCES) &&
71
+ React.createElement(TroubleshootSection, null)))), canJumpTo: isSectionValidFn(AppRouteSections.RESOURCES || activeSection === AppRouteSections.RESOURCES) &&
72
72
  (props === null || props === void 0 ? void 0 : props.userSeenRecommendationsValue) &&
73
73
  (props === null || props === void 0 ? void 0 : props.userCanNavigateToTroubleshoot), nextButtonLabel: isCaseCreate ? t('Continue') : t('Convert to case') }),
74
74
  [AppRouteSections.ADDITIONAL_INFORMATION]: Object.assign(Object.assign({}, defaultRouteConfiguration), { id: AppRouteSections.ADDITIONAL_INFORMATION, name: t('Additional information'), component: (React.createElement(MainSection, { stepNumber: 4, totalSteps: 6, section: AppRouteSections.ADDITIONAL_INFORMATION, title: React.createElement(React.Fragment, null,
@@ -242,6 +242,4 @@ export type ICaseActionType = IAction<CaseReducerConstants, ICreateCasePayloadTy
242
242
  export type CaseReducerDispatchType = Dispatch<ICaseActionType>;
243
243
  export declare const ORG_ADMIN_SEND_NOTIFCATION_KBASE_LINK = "https://access.redhat.com/articles/5967811";
244
244
  export declare const NON_ORG_ADMIN_SEND_NOTIFCATION_KBASE_LINK = "https://access.redhat.com/articles/5967831";
245
- export declare const excludedCaseTypesforARH: string[];
246
- export declare const appSourceId_ARH = "PCM-001";
247
245
  //# sourceMappingURL=CaseConstNTypes.d.ts.map