@rh-support/troubleshoot 2.6.48 → 2.6.49

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 (106) 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 +2 -3
  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/CaseSolutions.d.ts.map +1 -1
  11. package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutions.js +18 -14
  12. package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutionsItem.js +1 -1
  13. package/lib/esm/components/CaseEditView/ConfirmationModals/ReopenCaseModal.d.ts.map +1 -1
  14. package/lib/esm/components/CaseEditView/ConfirmationModals/ReopenCaseModal.js +22 -16
  15. package/lib/esm/components/CaseEditView/RequestRemoteSession/ESSRemoteSession.d.ts.map +1 -1
  16. package/lib/esm/components/CaseEditView/RequestRemoteSession/ESSRemoteSession.js +2 -2
  17. package/lib/esm/components/CaseEditView/RequestRemoteSession/NewEssTermsModal.d.ts.map +1 -1
  18. package/lib/esm/components/CaseEditView/RequestRemoteSession/NewEssTermsModal.js +102 -53
  19. package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreement.d.ts.map +1 -1
  20. package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreement.js +1 -1
  21. package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreementModal.d.ts.map +1 -1
  22. package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreementModal.js +21 -23
  23. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseHostname.js +2 -4
  24. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CasePhoneNumberConfirmAlert.d.ts.map +1 -1
  25. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CasePhoneNumberConfirmAlert.js +4 -7
  26. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment.d.ts.map +1 -1
  27. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment.js +1 -1
  28. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/VerifyCaseStatusModal/VerifyCaseStatusModal.d.ts.map +1 -1
  29. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/VerifyCaseStatusModal/VerifyCaseStatusModal.js +9 -7
  30. package/lib/esm/components/CaseEditView/Tabs/CaseHistory/Timeline.css +8 -0
  31. package/lib/esm/components/CaseInformation/Fts.d.ts.map +1 -1
  32. package/lib/esm/components/CaseInformation/Fts.js +2 -6
  33. package/lib/esm/components/CaseInformation/Severity.js +1 -1
  34. package/lib/esm/components/CaseInformation/SupportLevel.d.ts.map +1 -1
  35. package/lib/esm/components/CaseInformation/SupportLevel.js +1 -1
  36. package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.d.ts +0 -3
  37. package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.d.ts.map +1 -1
  38. package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.js +24 -16
  39. package/lib/esm/components/CaseManagement/RHAssociatesSelector.d.ts.map +1 -1
  40. package/lib/esm/components/CaseManagement/RHAssociatesSelector.js +7 -5
  41. package/lib/esm/components/CaseManagement/SendNotifications/AddCustomEmailToAccountModal.d.ts.map +1 -1
  42. package/lib/esm/components/CaseManagement/SendNotifications/AddCustomEmailToAccountModal.js +18 -20
  43. package/lib/esm/components/CaseManagement/SendNotifications/CaseContactSelector.d.ts.map +1 -1
  44. package/lib/esm/components/CaseManagement/SendNotifications/CaseContactSelector.js +9 -6
  45. package/lib/esm/components/CaseManagement/SendNotifications/NonOrgCaseNotifyeesSelector.d.ts.map +1 -1
  46. package/lib/esm/components/CaseManagement/SendNotifications/NonOrgCaseNotifyeesSelector.js +15 -22
  47. package/lib/esm/components/Cve/CveModal.d.ts.map +1 -1
  48. package/lib/esm/components/Cve/CveModal.js +3 -2
  49. package/lib/esm/components/Cve/CveSidebar.js +1 -1
  50. package/lib/esm/components/OpenCase/SupportTypeSelectorPage.js +1 -1
  51. package/lib/esm/components/ProductSelector/AllProductsSelector.d.ts.map +1 -1
  52. package/lib/esm/components/ProductSelector/AllProductsSelector.js +9 -6
  53. package/lib/esm/components/ProductSelector/NewProductDropdownSelector.d.ts.map +1 -1
  54. package/lib/esm/components/ProductSelector/NewProductDropdownSelector.js +10 -1
  55. package/lib/esm/components/Recommendations/AsideResults.d.ts.map +1 -1
  56. package/lib/esm/components/Recommendations/AsideResults.js +2 -2
  57. package/lib/esm/components/Recommendations/ClusterRecommendationsModal.d.ts.map +1 -1
  58. package/lib/esm/components/Recommendations/ClusterRecommendationsModal.js +7 -4
  59. package/lib/esm/components/Recommendations/EARules/EARuleInfoAccordion.d.ts.map +1 -1
  60. package/lib/esm/components/Recommendations/EARules/EARuleInfoAccordion.js +3 -1
  61. package/lib/esm/components/Recommendations/InsightsResults.js +1 -1
  62. package/lib/esm/components/Recommendations/InsightsRuleInfo.d.ts.map +1 -1
  63. package/lib/esm/components/Recommendations/InsightsRuleInfo.js +9 -2
  64. package/lib/esm/components/Recommendations/RecommendationFeedbackModal.d.ts.map +1 -1
  65. package/lib/esm/components/Recommendations/RecommendationFeedbackModal.js +4 -4
  66. package/lib/esm/components/Recommendations/Recommendations.js +1 -1
  67. package/lib/esm/components/Recommendations/RulesModal.d.ts.map +1 -1
  68. package/lib/esm/components/Recommendations/RulesModal.js +7 -4
  69. package/lib/esm/components/Recommendations/WatsonxAiIcon.js +1 -1
  70. package/lib/esm/components/SessionRestore/RestoreLastSessionModal.d.ts.map +1 -1
  71. package/lib/esm/components/SessionRestore/RestoreLastSessionModal.js +5 -3
  72. package/lib/esm/components/SessionRestore/SessionRestore.js +1 -1
  73. package/lib/esm/components/Suggestions/Suggestions.d.ts.map +1 -1
  74. package/lib/esm/components/Suggestions/Suggestions.js +17 -12
  75. package/lib/esm/components/Suggestions/TopContent.d.ts.map +1 -1
  76. package/lib/esm/components/Suggestions/TopContent.js +13 -13
  77. package/lib/esm/components/TroubleshootSection/AskRedHat.d.ts.map +1 -1
  78. package/lib/esm/components/TroubleshootSection/AskRedHat.js +14 -6
  79. package/lib/esm/components/TroubleshootSection/ResponseActions.d.ts.map +1 -1
  80. package/lib/esm/components/TroubleshootSection/ResponseActions.js +1 -1
  81. package/lib/esm/components/TroubleshootSection/TroubleshootSection.js +1 -1
  82. package/lib/esm/components/TroubleshootSection/UserFeedback.d.ts +1 -0
  83. package/lib/esm/components/TroubleshootSection/UserFeedback.d.ts.map +1 -1
  84. package/lib/esm/components/TroubleshootSection/UserFeedback.js +2 -2
  85. package/lib/esm/components/shared/fileUpload/WidgetFileUploader.js +3 -3
  86. package/lib/esm/components/shared/fileUpload/css/fileSelector.css +1 -0
  87. package/lib/esm/components/shared/input/ContactSelectorInternal.d.ts +1 -0
  88. package/lib/esm/components/shared/input/ContactSelectorInternal.d.ts.map +1 -1
  89. package/lib/esm/components/shared/input/ContactSelectorInternal.js +6 -1
  90. package/lib/esm/components/shared/useIsSectionValid.d.ts.map +1 -1
  91. package/lib/esm/components/shared/useIsSectionValid.js +7 -1
  92. package/lib/esm/components/wizardLayout/GlobalTroubleshootEffects.d.ts.map +1 -1
  93. package/lib/esm/components/wizardLayout/GlobalTroubleshootEffects.js +8 -2
  94. package/lib/esm/components/wizardLayout/WizardAside.js +3 -3
  95. package/lib/esm/components/wizardLayout/WizardMain.d.ts.map +1 -1
  96. package/lib/esm/components/wizardLayout/WizardMain.js +45 -45
  97. package/lib/esm/components/wizardLayout/WizardNavigation.d.ts +2 -2
  98. package/lib/esm/components/wizardLayout/WizardNavigation.d.ts.map +1 -1
  99. package/lib/esm/components/wizardLayout/WizardNavigation.js +14 -10
  100. package/lib/esm/css/AskRedHat.css +40 -7
  101. package/lib/esm/css/app.css +5 -4
  102. package/lib/esm/css/case.css +39 -6
  103. package/lib/esm/css/results.css +2 -2
  104. package/lib/esm/scss/_main.scss +70 -7
  105. package/lib/esm/scss/_pf-overrides.scss +37 -10
  106. package/package.json +6 -6
@@ -1 +1 @@
1
- {"version":3,"file":"WizardMain.d.ts","sourceRoot":"","sources":["../../../../src/components/wizardLayout/WizardMain.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAqD,MAAM,OAAO,CAAC;AAE3G,OAAO,EAAS,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAe9D,OAAO,EAAoB,eAAe,EAAE,MAAM,iCAAiC,CAAC;AA0FpF,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACjD,qBAAqB,EAAE,CAAC,cAAc,EAAE,OAAO,KAAK,IAAI,CAAC;IACzD,mBAAmB,EAAE,CAAC,gCAAgC,EAAE,OAAO,KAAK,IAAI,CAAC;IACzE,YAAY,EAAE,OAAO,CAAC;IACtB,eAAe,EAAE,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IACnD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,sBAAsB,CAAC,EAAE,OAAO,CAAC;CACpC;AAED,iBAAS,UAAU,CAAC,KAAK,EAAE,MAAM,qBA6XhC;AACD,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"WizardMain.d.ts","sourceRoot":"","sources":["../../../../src/components/wizardLayout/WizardMain.tsx"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAqD,MAAM,OAAO,CAAC;AAE3G,OAAO,EAAS,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAe9D,OAAO,EAAoB,eAAe,EAAE,MAAM,iCAAiC,CAAC;AA0FpF,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACjD,qBAAqB,EAAE,CAAC,cAAc,EAAE,OAAO,KAAK,IAAI,CAAC;IACzD,mBAAmB,EAAE,CAAC,gCAAgC,EAAE,OAAO,KAAK,IAAI,CAAC;IACzE,YAAY,EAAE,OAAO,CAAC;IACtB,eAAe,EAAE,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IACnD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,sBAAsB,CAAC,EAAE,OAAO,CAAC;CACpC;AAED,iBAAS,UAAU,CAAC,KAAK,EAAE,MAAM,qBA2XhC;AACD,eAAe,UAAU,CAAC"}
@@ -20,8 +20,9 @@ var __rest = (this && this.__rest) || function (s, e) {
20
20
  };
21
21
  import { Env } from '@cee-eng/hydrajs';
22
22
  import { askRHDirectAIResponse, getRHDirectStatusCheck, } from '@ifd-ui/ask-redhat-core';
23
- import { useWizardContext, Wizard, WizardNav, WizardNavItem, WizardStep } from '@patternfly/react-core';
23
+ import { Wizard, WizardNav, WizardNavItem, WizardStep, } from '@patternfly/react-core';
24
24
  import { LoadingIndicator } from '@rh-support/components';
25
+ import i18n from 'i18next';
25
26
  import isEqual from 'lodash/isEqual';
26
27
  import React, { Suspense, useContext, useEffect, useRef, useState } from 'react';
27
28
  import { useTranslation } from 'react-i18next';
@@ -85,17 +86,17 @@ const generateAIQuestion = (activeSection, product, version, summary, issue, cas
85
86
  return `${prefix} ${baseMessageMap[lang] || baseMessageMap.en}`;
86
87
  };
87
88
  function WizardMain(props) {
89
+ var _a, _b, _c;
88
90
  const [showRestFlag, setShowRestFlag] = useState(false);
89
91
  const [aiServicesAvailable, setAIServicesAvailable] = useState(false); // default to false until services are confirmed available
90
92
  const recommendationDispatch = useContext(RecommendationDispatchContext);
91
- const { isCreatingCase, product, version, summary, issue, caseType, caseLanguage } = useCaseSelector((state) => ({
93
+ const { isCreatingCase, product, version, summary, issue, caseType } = useCaseSelector((state) => ({
92
94
  isCreatingCase: state.isCreatingCase,
93
95
  product: state.caseDetails.product,
94
96
  version: state.caseDetails.version,
95
97
  summary: state.caseDetails.summary,
96
98
  issue: state.caseDetails.issue,
97
99
  caseType: state.caseDetails.caseType,
98
- caseLanguage: state.caseDetails.caseLanguage,
99
100
  }), isEqual);
100
101
  const { routeState: { isCaseCreate, activeSection }, } = useContext(RouteContext);
101
102
  const aiResponseDispatch = useAIResponseDispatch();
@@ -261,53 +262,52 @@ function WizardMain(props) {
261
262
  const customNav = (isExpanded, steps, activeStep, goToStepByIndex) => (React.createElement(WizardNav, { isExpanded: isExpanded }, steps.map((step) => {
262
263
  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) }));
263
264
  })));
264
- const CustomFooter = () => {
265
- var _a, _b, _c;
266
- const { activeStep, goToNextStep, goToPrevStep, steps, goToStepByIndex } = useWizardContext(); // Correctly using the context
267
- const aiResponseState = useAIResponseState();
268
- const config = {
269
- appSourceId: appSourceId_ARH,
270
- 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 : '',
271
- packageVersion: (_c = window === null || window === void 0 ? void 0 : window.supportVersionInfo) === null || _c === void 0 ? void 0 : _c.packageVersion,
272
- appEnv: Env.getEnvName(),
265
+ const aiResponseState = useAIResponseState();
266
+ const config = {
267
+ appSourceId: appSourceId_ARH,
268
+ 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 : '',
269
+ packageVersion: (_c = window === null || window === void 0 ? void 0 : window.supportVersionInfo) === null || _c === void 0 ? void 0 : _c.packageVersion,
270
+ appEnv: Env.getEnvName(),
271
+ };
272
+ const fetchARHResponse = () => __awaiter(this, void 0, void 0, function* () {
273
+ var _a;
274
+ const detailedQuestion = generateAIQuestion(activeSection || '', product, version, summary, issue, caseType || '', i18n.language || 'en');
275
+ //streaming callbacks
276
+ const streamingCallbacks = {
277
+ onChunk: (chunk, accumulatedResponse) => {
278
+ aiResponseDispatch(streamingChunkReceived(chunk, accumulatedResponse));
279
+ },
280
+ onComplete: (finalResponse) => {
281
+ aiResponseDispatch(streamingCompleted(finalResponse));
282
+ },
283
+ onError: (error) => {
284
+ aiResponseDispatch(streamingError(error));
285
+ },
273
286
  };
287
+ aiResponseDispatch(streamingStarted());
288
+ try {
289
+ // Get existing conversation ID from state if available (need to map it with session data)
290
+ const existingConversationId = (_a = aiResponseState === null || aiResponseState === void 0 ? void 0 : aiResponseState.aiResponse) === null || _a === void 0 ? void 0 : _a.conversationId;
291
+ yield askRHDirectAIResponse(detailedQuestion, config, true, // response to be streamed or not
292
+ existingConversationId, streamingCallbacks);
293
+ }
294
+ catch (error) {
295
+ const errorMessage = error instanceof Error ? error.message : 'Failed to get AI response';
296
+ aiResponseDispatch(streamingError(errorMessage));
297
+ }
298
+ });
299
+ const CustomFooter = (activeStep, goToNextStep, goToPrevStep) => {
274
300
  useEffect(() => {
275
- if (steps.length > 2 && activeStep.index === 2 && isNextButtonClicked) {
276
- goToStepByIndex(3);
301
+ if (steps.length > 2 && (activeStep === null || activeStep === void 0 ? void 0 : activeStep.index) === 2 && isNextButtonClicked) {
302
+ goToNextStep({});
277
303
  }
278
- }, [activeStep, steps.length, goToStepByIndex]);
279
- const fetchARHResponse = () => __awaiter(this, void 0, void 0, function* () {
280
- var _a;
281
- const detailedQuestion = generateAIQuestion(activeSection || '', product, version, summary, issue, caseType || '', caseLanguage || 'en');
282
- //streaming callbacks
283
- const streamingCallbacks = {
284
- onChunk: (chunk, accumulatedResponse) => {
285
- aiResponseDispatch(streamingChunkReceived(chunk, accumulatedResponse));
286
- },
287
- onComplete: (finalResponse) => {
288
- aiResponseDispatch(streamingCompleted(finalResponse));
289
- },
290
- onError: (error) => {
291
- aiResponseDispatch(streamingError(error));
292
- },
293
- };
294
- aiResponseDispatch(streamingStarted());
295
- try {
296
- // Get existing conversation ID from state if available (need to map it with session data)
297
- const existingConversationId = (_a = aiResponseState === null || aiResponseState === void 0 ? void 0 : aiResponseState.aiResponse) === null || _a === void 0 ? void 0 : _a.conversationId;
298
- yield askRHDirectAIResponse(detailedQuestion, config, true, // response to be streamed or not
299
- existingConversationId, streamingCallbacks);
300
- }
301
- catch (error) {
302
- const errorMessage = error instanceof Error ? error.message : 'Failed to get AI response';
303
- aiResponseDispatch(streamingError(errorMessage));
304
- }
305
- });
304
+ // eslint-disable-next-line react-hooks/exhaustive-deps
305
+ }, [activeStep, steps.length, isNextButtonClicked, goToNextStep]);
306
306
  const handleContinueClick = () => __awaiter(this, void 0, void 0, function* () {
307
307
  // Navigate to next step first
308
308
  isNextButtonClickedRef.current = true;
309
309
  setIsNextButtonClicked(true);
310
- goToNextStep();
310
+ goToNextStep({});
311
311
  focusWizardMainPanel();
312
312
  // Fetch ARH response if conditions are met
313
313
  if (shouldEnableARHServices() && aiServicesAvailable) {
@@ -316,7 +316,7 @@ function WizardMain(props) {
316
316
  });
317
317
  return (React.createElement(WizardNavigation, { routeProps: props.routeProps, onNext: handleContinueClick, onBack: () => {
318
318
  isBackButtonClickedRef.current = true;
319
- goToPrevStep();
319
+ goToPrevStep({});
320
320
  focusWizardMainPanel();
321
321
  }, 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 }));
322
322
  };
@@ -329,7 +329,7 @@ function WizardMain(props) {
329
329
  // in useWizard file then add it to step squences in RouteConstNTypes
330
330
  return (React.createElement(React.Fragment, null,
331
331
  React.createElement(NewFeatureModal, null),
332
- 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)) })),
332
+ 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)) })),
333
333
  React.createElement(Route, { exact: true, path: `${RouteUtils.seBasePath}/${AppRouteSections.SUBMIT_CASE}`, render: () => renderSubmitCasePage() })));
334
334
  }
335
335
  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;
@@ -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;IACrE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,sBAAsB,CAAC,EAAE,MAAM,IAAI,CAAC;CACvC;AAGD,iBAAS,gBAAgB,CAAC,KAAK,EAAE,MAAM,qBAsVtC;kBAtVQ,gBAAgB;;;AAwVzB,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);
@@ -250,7 +254,7 @@ function WizardNavigation(props) {
250
254
  return (React.createElement(React.Fragment, null,
251
255
  React.createElement(WizardFooterWrapper, null,
252
256
  props.isAIChatMode && activeSection === AppRouteSections.RESOURCES ? (React.createElement(Button, { onClick: props.onReturnToCaseCreation, variant: "link", className: "return-to-case-btn" }, isCaseCreate ? t('Return to case creation') : t('Return to resources'))) : (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'))),
257
+ 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
258
  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
259
  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
260
  React.createElement(RecommendationFeedbackModal, { isModalOpen: isRecsModalVisible, handleModalToggle: onRecsFeedbackModalToggle, modalContent: t(`Great, we're glad that resolved your issue`) }),
@@ -1,5 +1,5 @@
1
1
  .ask-redhat {
2
- padding: 1rem 1rem 2rem;
2
+ padding-bottom: 2rem;
3
3
  }
4
4
 
5
5
  .ask-redhat-title {
@@ -36,12 +36,12 @@
36
36
  }
37
37
 
38
38
  .ask-redhat-content--expanded {
39
- max-height: calc(100vh - 390px);
39
+ max-height: calc(100vh - 382px);
40
40
  transition: max-height 0.8s ease !important;
41
41
  }
42
42
 
43
43
  .ask-redhat-content--expanded-scrollable {
44
- max-height: calc(100vh - 500px);
44
+ max-height: calc(100vh - 453px);
45
45
  overflow-y: auto;
46
46
  }
47
47
 
@@ -65,15 +65,14 @@
65
65
 
66
66
  .ask-redhat-footer-wrapper {
67
67
  position: relative;
68
- margin-top: 1rem;
69
- padding-bottom: 3rem;
68
+ margin-top: 24px;
69
+ padding-bottom: 16px;
70
70
  }
71
71
 
72
72
  .ask-redhat-footer {
73
73
  display: flex;
74
74
  justify-content: space-between;
75
75
  align-items: center;
76
- margin: 1.5rem 0 2rem;
77
76
  }
78
77
 
79
78
  .ask-redhat-footer-text {
@@ -125,6 +124,7 @@
125
124
  height: 100%;
126
125
  }
127
126
 
127
+
128
128
  .ask-redhat-chat-button .pf-v6-c-button__icon {
129
129
  display: flex;
130
130
  align-items: center;
@@ -235,7 +235,6 @@
235
235
  border-radius: 40px;
236
236
  background: var(--gradient-red-purple) !important;
237
237
  color: #000;
238
- position: absolute;
239
238
  left: 50%;
240
239
  transform: translateX(-50%);
241
240
  z-index: 3;
@@ -357,3 +356,37 @@ body:has(.pf-chatbot--embedded) .pf-v6-c-wizard__main-body:last-child {
357
356
  .response-actions-wrapper {
358
357
  margin-top: 24px;
359
358
  }
359
+
360
+ .pf-chatbot__header {
361
+ color: #151515 !important;
362
+ background-color: #f2f2f2 !important;
363
+ }
364
+
365
+ .ask-redhat-core .pf-chatbot__header .pf-v6-c-title {
366
+ font-size: 16px !important;
367
+ font-weight: 600 !important;
368
+ }
369
+
370
+ .ask-redhat-core .pf-chatbot__beta-label .pf-v6-c-label__content {
371
+ color: #707070 !important;
372
+ line-height: var(--global-font-line-height-figma-only-body-small, 18px) !important;
373
+ }
374
+
375
+ .ask-redhat-core .pf-chatbot__header-container:after {
376
+ display: none !important;
377
+ }
378
+
379
+ .ask-redhat-core .pf-chatbot__expand-collapse-button {
380
+ color: #151515 !important;
381
+ font-size: var(--global-font-size-body-sm, 12px) !important;
382
+ }
383
+
384
+ .pf-v6-c-button__icon.pf-m-end {
385
+ margin-left: 0 !important;
386
+ display: flex !important;
387
+ padding: 8px !important;
388
+ align-items: center !important;
389
+ gap: 5px !important;
390
+ border-radius: var(--global-border-radius-small, 6px) !important;
391
+ background: #fff !important;
392
+ }
@@ -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
+ }
@@ -177,15 +177,36 @@ button,
177
177
  }
178
178
 
179
179
  .clipboard-wrapper {
180
+ display: flex;
180
181
  position: relative;
181
182
  }
182
183
 
183
- .clip-content-wrapper {
184
- position: relative;
185
- border: 1px solid #ededed;
186
- background: #f5f5f5;
187
- padding: 2px 4px;
188
- overflow: auto;
184
+ .clipboard-wrapper svg {
185
+ color: var(--pf-t--global--text--color--link--default);
186
+ }
187
+
188
+ .clipboard-wrapper :first-child {
189
+ white-space: nowrap;
190
+ overflow: hidden;
191
+ text-overflow: ellipsis;
192
+ }
193
+
194
+ .helper-text-size {
195
+ font-size: var(--pf-t--global--font--size--100);
196
+ }
197
+
198
+ .label-text-size {
199
+ font-size: var(--pf-t--global--font--size--300);
200
+ }
201
+
202
+ .request-collaboration-input {
203
+ background-color: var(--pf-t--global--background--color--200);
204
+ border: var(--pf-t--global--border--width--box--default) solid var(--pf-t--global--border--color--100);
205
+ }
206
+
207
+ .copy-button {
208
+ display: flex;
209
+ align-items: center;
189
210
  }
190
211
 
191
212
  .clip-code-raw-btn {
@@ -363,3 +384,15 @@ input[aria-invalid='true'].pf-v6-c-form-control {
363
384
  min-width: 552px;
364
385
  }
365
386
  }
387
+
388
+ #reopen-case-description {
389
+ resize: none !important;
390
+ }
391
+
392
+ .add-watcher-button {
393
+ max-width: 15rem;
394
+ }
395
+
396
+ .remove-watcher-button {
397
+ max-width: 15rem;
398
+ }
@@ -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 {
@@ -81,6 +81,17 @@ div.support-grid-case-details.support-case {
81
81
  }
82
82
  }
83
83
  }
84
+ .grid-aside-content-inner-div {
85
+ margin: 0px !important;
86
+ }
87
+
88
+ .card-heading {
89
+ margin-bottom: 0px;
90
+ }
91
+
92
+ #case-details-top-recommendations-pagination-bottom-pagination {
93
+ justify-content: flex-start;
94
+ }
84
95
  }
85
96
  }
86
97
 
@@ -258,6 +269,7 @@ div.support-grid-case-details.support-case {
258
269
  justify-content: space-between;
259
270
  -ms-flex-wrap: wrap;
260
271
  flex-wrap: wrap;
272
+ border-radius: 8px;
261
273
 
262
274
  & > * {
263
275
  margin: 9px;
@@ -303,6 +315,7 @@ div.support-grid-case-details.support-case {
303
315
  }
304
316
 
305
317
  .case-overview-secondary {
318
+ border-radius: 8px;
306
319
  .form-group {
307
320
  margin-bottom: 0;
308
321
  }
@@ -647,24 +660,30 @@ mark {
647
660
  margin-left: -2rem;
648
661
  }
649
662
 
663
+ .list-icons li:last-child {
664
+ margin-bottom: 0;
665
+ }
666
+
650
667
  // pinning feature - can't be overly specific here
651
668
  .recommendation-header {
652
669
  font-size: 14px;
653
670
  font-weight: 600;
654
671
 
655
672
  .pinned-resource {
656
- color: var(--pf-v5-global--primary-color--100);
673
+ color: var(--pf-t--global--text--color--link--default);
657
674
  }
658
675
 
659
- button:hover[title='Link'] {
676
+ button:hover[title='Link'] svg {
660
677
  color: #6ca100;
661
678
  }
662
679
 
663
680
  button[title='Unlink'] {
664
- color: #6ca100;
681
+ svg {
682
+ color: #6ca100;
683
+ }
665
684
 
666
- &:hover {
667
- color: var(--pf-v5-global--danger-color--100);
685
+ &:hover svg {
686
+ color: var(pf-t--global--icon--color--status--danger--default);
668
687
  }
669
688
  }
670
689
  }
@@ -765,10 +784,10 @@ p.pref-case-popover-text {
765
784
  }
766
785
 
767
786
  .support-types-card {
768
- border: 1px solid #c7c7c7;
787
+ border: var(--pf-t--global--border--width--box--default) solid var(--pf-t--global--border--color--default);
769
788
 
770
789
  &.pf-m-selected {
771
- border: 1px solid #06c;
790
+ border: var(--pf-t--global--border--width--box--clicked) solid var(--pf-t--global--border--color--clicked);
772
791
  }
773
792
  }
774
793
 
@@ -968,6 +987,7 @@ svg.pf-v6-u-ml-xs.icon-size {
968
987
  button {
969
988
  padding: 0;
970
989
  display: flex;
990
+ min-width: 7rem;
971
991
  }
972
992
  .eval-icons span {
973
993
  color: var(--pf-v5-global--primary-color--200);
@@ -981,6 +1001,23 @@ svg.pf-v6-u-ml-xs.icon-size {
981
1001
  padding: 0.2rem;
982
1002
  }
983
1003
 
1004
+ #case-details-pinned-recommendations {
1005
+ margin-bottom: 0;
1006
+ }
1007
+
1008
+ .card-body-wrapper {
1009
+ display: flex;
1010
+ padding: 16px;
1011
+ flex-direction: column;
1012
+ align-items: flex-start;
1013
+ gap: 16px;
1014
+ border-radius: 0px 0px var(--global-border-radius-medium, 16px) var(--global-border-radius-medium, 16px);
1015
+ border-right: 1px solid var(--global-border-color-default, #c7c7c7);
1016
+ border-bottom: 1px solid var(--global-border-color-default, #c7c7c7);
1017
+ border-left: 1px solid var(--global-border-color-default, #c7c7c7);
1018
+ background: #fff;
1019
+ }
1020
+
984
1021
  .card-body-wrapper {
985
1022
  display: flex;
986
1023
  padding: 16px;
@@ -1097,6 +1134,7 @@ svg.pf-v6-u-ml-xs.icon-size {
1097
1134
 
1098
1135
  .review-form {
1099
1136
  background-color: #e0e0e0 !important;
1137
+ border-radius: 8px;
1100
1138
  }
1101
1139
 
1102
1140
  .ai-label-text {
@@ -1148,6 +1186,7 @@ svg.pf-v6-u-ml-xs.icon-size {
1148
1186
  padding: 1px;
1149
1187
  border-radius: 20px;
1150
1188
  height: 32px;
1189
+ margin-bottom: 18px;
1151
1190
  }
1152
1191
 
1153
1192
  .single-select-toggle-text {
@@ -1254,3 +1293,27 @@ svg.pf-v6-u-ml-xs.icon-size {
1254
1293
  .cursor-pointer {
1255
1294
  cursor: pointer;
1256
1295
  }
1296
+
1297
+ #file-uploader-title {
1298
+ margin-bottom: 0;
1299
+ }
1300
+
1301
+ .file-upload-body {
1302
+ padding-top: 0;
1303
+ }
1304
+
1305
+ .article-recommendations-card h3 {
1306
+ margin-bottom: 0;
1307
+ }
1308
+
1309
+ .postcomment-submit:disabled {
1310
+ color: var(--pf-v6-c-button--disabled--Color);
1311
+ }
1312
+
1313
+ .remote-session-button:disabled {
1314
+ color: var(--pf-v6-c-button--disabled--Color);
1315
+ }
1316
+
1317
+ .send-notifications-add:disabled {
1318
+ color: var(--pf-v6-c-button--disabled--Color) !important;
1319
+ }