@rh-support/troubleshoot 2.2.148 → 2.2.150

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 (66) hide show
  1. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseInformation.d.ts.map +1 -1
  2. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseInformation.js +3 -7
  3. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenshiftClusterId.d.ts.map +1 -1
  4. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenshiftClusterId.js +1 -6
  5. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/Summary.js +3 -3
  6. package/lib/esm/components/CaseInformation/CaseInformation.d.ts.map +1 -1
  7. package/lib/esm/components/CaseInformation/CaseInformation.js +0 -2
  8. package/lib/esm/components/CaseInformation/ContactPhoneNumber.d.ts.map +1 -1
  9. package/lib/esm/components/CaseInformation/ContactPhoneNumber.js +0 -2
  10. package/lib/esm/components/CaseInformation/Description.d.ts +1 -0
  11. package/lib/esm/components/CaseInformation/Description.d.ts.map +1 -1
  12. package/lib/esm/components/CaseInformation/Description.js +6 -13
  13. package/lib/esm/components/CaseInformation/OpenCaseIssue.d.ts +1 -0
  14. package/lib/esm/components/CaseInformation/OpenCaseIssue.d.ts.map +1 -1
  15. package/lib/esm/components/CaseInformation/OpenCaseIssue.js +36 -19
  16. package/lib/esm/components/CaseManagement/OpenShiftClusterId.d.ts.map +1 -1
  17. package/lib/esm/components/CaseManagement/OpenShiftClusterId.js +3 -7
  18. package/lib/esm/components/ImproveCase/KtQuestions.d.ts.map +1 -1
  19. package/lib/esm/components/ImproveCase/KtQuestions.js +65 -14
  20. package/lib/esm/components/OpenCase/NewFeatureModal.d.ts +4 -0
  21. package/lib/esm/components/OpenCase/NewFeatureModal.d.ts.map +1 -0
  22. package/lib/esm/components/OpenCase/NewFeatureModal.js +38 -0
  23. package/lib/esm/components/OpenCase/OpenCase.js +2 -2
  24. package/lib/esm/components/ProductSelector/AllProductsSelector.js +1 -1
  25. package/lib/esm/components/ProductSelector/ProductSelector.d.ts +1 -0
  26. package/lib/esm/components/ProductSelector/ProductSelector.d.ts.map +1 -1
  27. package/lib/esm/components/ProductSelector/ProductSelector.js +1 -1
  28. package/lib/esm/components/Recommendations/EARules/EARuleWidget.d.ts.map +1 -1
  29. package/lib/esm/components/Recommendations/EARules/EARuleWidget.js +7 -5
  30. package/lib/esm/components/Recommendations/RecommendationInfoBox.d.ts.map +1 -1
  31. package/lib/esm/components/Recommendations/RecommendationInfoBox.js +10 -8
  32. package/lib/esm/components/Recommendations/Recommendations.d.ts +1 -0
  33. package/lib/esm/components/Recommendations/Recommendations.d.ts.map +1 -1
  34. package/lib/esm/components/Recommendations/Recommendations.js +17 -6
  35. package/lib/esm/components/Review/Review.d.ts.map +1 -1
  36. package/lib/esm/components/Review/Review.js +0 -2
  37. package/lib/esm/components/TroubleshootSection/TroubleshootSection.d.ts.map +1 -1
  38. package/lib/esm/components/TroubleshootSection/TroubleshootSection.js +8 -4
  39. package/lib/esm/components/shared/fileUpload/WidgetFileUploader.d.ts.map +1 -1
  40. package/lib/esm/components/shared/fileUpload/WidgetFileUploader.js +2 -3
  41. package/lib/esm/components/shared/useIsSectionValid.d.ts.map +1 -1
  42. package/lib/esm/components/shared/useIsSectionValid.js +6 -3
  43. package/lib/esm/components/wizardLayout/GlobalTroubleshootEffects.d.ts.map +1 -1
  44. package/lib/esm/components/wizardLayout/GlobalTroubleshootEffects.js +2 -38
  45. package/lib/esm/components/wizardLayout/WizardMain.d.ts.map +1 -1
  46. package/lib/esm/components/wizardLayout/WizardMain.js +7 -2
  47. package/lib/esm/components/wizardLayout/WizardNavigation.d.ts +1 -0
  48. package/lib/esm/components/wizardLayout/WizardNavigation.d.ts.map +1 -1
  49. package/lib/esm/components/wizardLayout/WizardNavigation.js +2 -1
  50. package/lib/esm/hooks/useWizard.d.ts +6 -1
  51. package/lib/esm/hooks/useWizard.d.ts.map +1 -1
  52. package/lib/esm/hooks/useWizard.js +10 -6
  53. package/lib/esm/reducers/CaseConstNTypes.d.ts +11 -5
  54. package/lib/esm/reducers/CaseConstNTypes.d.ts.map +1 -1
  55. package/lib/esm/reducers/CaseConstNTypes.js +11 -5
  56. package/lib/esm/reducers/CaseHelpers.d.ts.map +1 -1
  57. package/lib/esm/reducers/CaseHelpers.js +4 -4
  58. package/lib/esm/reducers/RecommendationsReducer.d.ts +3 -1
  59. package/lib/esm/reducers/RecommendationsReducer.d.ts.map +1 -1
  60. package/lib/esm/reducers/RecommendationsReducer.js +2 -0
  61. package/lib/esm/scss/_main.scss +6 -0
  62. package/lib/esm/scss/_pf-overrides.scss +21 -0
  63. package/package.json +4 -4
  64. package/lib/esm/components/OpenCase/MandatoryPhoneBanner.d.ts +0 -4
  65. package/lib/esm/components/OpenCase/MandatoryPhoneBanner.d.ts.map +0 -1
  66. package/lib/esm/components/OpenCase/MandatoryPhoneBanner.js +0 -29
@@ -52,5 +52,5 @@ export default function ProductSelector(props) {
52
52
  React.createElement(EARuleWidget, null)),
53
53
  React.createElement("div", { className: "suggestions-result-section" },
54
54
  React.createElement(ErrorBoundary, { errorMsgInfo: { message: t('There was an error loading recommendations') } }, !isEmpty(version) && (React.createElement("div", { className: "common-suggestions" },
55
- React.createElement(Recommendations, { routeProps: props.routeProps })))))))));
55
+ React.createElement(Recommendations, { routeProps: props.routeProps, userSeenRecommendations: props.userSeenRecommendations })))))))));
56
56
  }
@@ -1 +1 @@
1
- {"version":3,"file":"EARuleWidget.d.ts","sourceRoot":"","sources":["../../../../../src/components/Recommendations/EARules/EARuleWidget.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAWrD,wBAAgB,YAAY,sBAmD3B"}
1
+ {"version":3,"file":"EARuleWidget.d.ts","sourceRoot":"","sources":["../../../../../src/components/Recommendations/EARules/EARuleWidget.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAWrD,wBAAgB,YAAY,sBAqD3B"}
@@ -14,10 +14,11 @@ export function EARuleWidget() {
14
14
  const { rulesState: { isEARuleWidgetVisible, EARules }, } = useContext(RulesStateContext);
15
15
  const { sessionRestore: { activeSessionId, sessionResourceTracking }, } = useContext(SessionRestoreStateContext);
16
16
  const sessionRestoreDispatch = useContext(SessionRestoreDispatchContext);
17
- const { product, version, summary } = useCaseSelector((state) => ({
17
+ const { product, version, summary, issue } = useCaseSelector((state) => ({
18
18
  product: state.caseDetails.product,
19
19
  version: state.caseDetails.version,
20
20
  summary: state.caseDetails.summary,
21
+ issue: state.caseDetails.issue,
21
22
  }), isEqual);
22
23
  const validEARules = filter(EARules.rules, (r) => r.visible && r.rule_sub_type !== 'attachment');
23
24
  useEffect(() => {
@@ -27,13 +28,14 @@ export function EARuleWidget() {
27
28
  if (visibleValidEARules &&
28
29
  differenceBy([visibleValidEARules === null || visibleValidEARules === void 0 ? void 0 : visibleValidEARules.rule_id], presentedIds).length > 0 &&
29
30
  !isEmpty(activeSessionId)) {
30
- createOrUpdateSessionResources(sessionRestoreDispatch, activeSessionId, sessionResourceTracking, SessionResourceSource.EDMOUND_ABOTT, [
31
- getSessResFromRules(visibleValidEARules.cta, SessionResourceVisibility.PRESENTED, 1, visibleValidEARules.rule_id),
32
- ], JSON.stringify({ product, version, summary }));
31
+ !isEmpty(issue) &&
32
+ createOrUpdateSessionResources(sessionRestoreDispatch, activeSessionId, sessionResourceTracking, SessionResourceSource.EDMOUND_ABOTT, [
33
+ getSessResFromRules(visibleValidEARules.cta, SessionResourceVisibility.PRESENTED, 1, visibleValidEARules.rule_id),
34
+ ], JSON.stringify({ product, version, summary, description: issue }));
33
35
  }
34
36
  // eslint-disable-next-line react-hooks/exhaustive-deps
35
37
  }, [validEARules, activeSessionId]);
36
38
  if (!isEARuleWidgetVisible || validEARules.length < 1)
37
39
  return null;
38
- return React.createElement(EARuleInfoInline, { eaRules: validEARules });
40
+ return !isEmpty(issue) && React.createElement(EARuleInfoInline, { eaRules: validEARules });
39
41
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RecommendationInfoBox.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/RecommendationInfoBox.tsx"],"names":[],"mappings":"AACA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAKxC,eAAO,MAAM,qBAAqB,yBAqDjC,CAAC"}
1
+ {"version":3,"file":"RecommendationInfoBox.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/RecommendationInfoBox.tsx"],"names":[],"mappings":"AACA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAGxC,eAAO,MAAM,qBAAqB,yBAiDjC,CAAC"}
@@ -1,29 +1,31 @@
1
1
  import { Accordion, AccordionContent, AccordionItem, AccordionToggle, List, ListItem } from '@patternfly/react-core';
2
2
  import React, { useState } from 'react';
3
3
  import { Trans, useTranslation } from 'react-i18next';
4
- import { SUMMARY_LENGTH_LIMIT } from '../../reducers/CaseConstNTypes';
5
4
  export const RecommendationInfoBox = () => {
6
5
  const { t } = useTranslation();
7
6
  const [isExpanded, setIsExpanded] = useState(true);
8
7
  return (React.createElement(React.Fragment, null,
9
8
  React.createElement(Accordion, { isBordered: true, asDefinitionList: false, className: "pf-v5-u-mb-md" },
10
9
  React.createElement(AccordionItem, null,
11
- React.createElement(AccordionToggle, { id: "recommendation-tips", isExpanded: isExpanded, onClick: () => setIsExpanded(!isExpanded) }, t(`Tips for summarizing your problem in under ${SUMMARY_LENGTH_LIMIT} characters`)),
10
+ React.createElement(AccordionToggle, { id: "recommendation-tips", isExpanded: isExpanded, onClick: () => setIsExpanded(!isExpanded) }, t('Tips for problem description field')),
12
11
  React.createElement(AccordionContent, { isHidden: !isExpanded },
13
12
  React.createElement("span", { className: "pf-v5-u-color-100" },
14
- React.createElement(Trans, null, "To help us find the right information for you, include 1-2 key details, such as:")),
13
+ React.createElement(Trans, null, "Include the following information in the description to expedite your case: ")),
15
14
  React.createElement(List, { className: "pf-v5-u-ml-lg", style: { listStyleType: 'disc' } },
16
15
  React.createElement(ListItem, null,
17
- React.createElement(Trans, null, "Relevant keywords")),
16
+ React.createElement(Trans, null, "Problem")),
18
17
  React.createElement(ListItem, null,
19
- React.createElement(Trans, null, "Error messages")),
18
+ React.createElement(Trans, null, "Steps you\u2019ve taken")),
20
19
  React.createElement(ListItem, null,
21
- React.createElement(Trans, null, "Specific problems"))),
20
+ React.createElement(Trans, null, "Error Messages"))),
22
21
  React.createElement("span", { className: "pf-v5-u-color-100" },
23
22
  React.createElement(Trans, null, "Examples:")),
24
23
  React.createElement(List, { className: "pf-v5-u-ml-lg", style: { listStyleType: 'disc' } },
25
24
  React.createElement(ListItem, null,
26
- React.createElement(Trans, null, "I'm unable to start the SSHD service and am receiving this error message, \u201CBad yes/no argument for ShowPatchLevel parameter.\u201D (125/255 characters)")),
25
+ React.createElement(Trans, null, "\"we see error code/message\", \"function that is failing\"")),
27
26
  React.createElement(ListItem, null,
28
- React.createElement(Trans, null, "We see this error message: \u201Cfunction that is failing\u201D. (54/255 characters)"))))))));
27
+ React.createElement(Trans, null,
28
+ "I\u2019m unable to start the SSHD service receiving the error message ",
29
+ React.createElement("br", null),
30
+ "\"Bad yes/no argument for ShowPatchLevel parameter\u201D"))))))));
29
31
  };
@@ -3,6 +3,7 @@ import { RouteComponentProps } from 'react-router-dom';
3
3
  import { IRouteUrlParams } from '../../reducers/RouteConstNTypes';
4
4
  interface IProps {
5
5
  routeProps: RouteComponentProps<IRouteUrlParams>;
6
+ userSeenRecommendations?: (value: React.SetStateAction<boolean>) => void;
6
7
  }
7
8
  export default function Recommendations(props: IProps): React.JSX.Element;
8
9
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"Recommendations.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/Recommendations.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAEvE,OAAO,EAAE,mBAAmB,EAAa,MAAM,kBAAkB,CAAC;AAelE,OAAO,EAAoB,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAWpF,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;CACpD;AAED,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,KAAK,EAAE,MAAM,qBAsQpD"}
1
+ {"version":3,"file":"Recommendations.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/Recommendations.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAEvE,OAAO,EAAE,mBAAmB,EAAa,MAAM,kBAAkB,CAAC;AAelE,OAAO,EAAoB,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAWpF,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACjD,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;CAC5E;AAED,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,KAAK,EAAE,MAAM,qBAkRpD"}
@@ -24,11 +24,12 @@ import { WatsonxAiIcon } from './WatsonxAiIcon';
24
24
  const { SessionResourceSource, SessionResourceVisibility } = pcm.preCase.session;
25
25
  export default function Recommendations(props) {
26
26
  var _a, _b, _c;
27
- const { product, version, environment, summary, caseResourceLinks } = useCaseSelector((state) => ({
27
+ const { product, version, environment, summary, caseResourceLinks, issue } = useCaseSelector((state) => ({
28
28
  product: state.caseDetails.product,
29
29
  version: state.caseDetails.version,
30
30
  environment: state.caseDetails.environment,
31
31
  summary: state.caseDetails.summary,
32
+ issue: state.caseDetails.issue,
32
33
  caseResourceLinks: state.caseDetails.caseResourceLinks,
33
34
  }), isEqual);
34
35
  const caseDispatch = useCaseDispatch();
@@ -48,7 +49,7 @@ export default function Recommendations(props) {
48
49
  const MAXROW = 24;
49
50
  const recPageSize = pageSize !== null && pageSize !== void 0 ? pageSize : DEFAULTPAGESIZE;
50
51
  const abortControllerRef = useRef(undefined);
51
- const payload = { product, version, summary };
52
+ const payload = { product: product, version: version, summary: summary + ' ' + (issue ? issue : '') };
52
53
  const isRecSearchPayloadSame = isEqual(payload, recommendationState.prevRecommendationsBody);
53
54
  useEffect(() => {
54
55
  // currently due to the debounce we use after the page load leads to some delay in the disbaling of next button
@@ -80,9 +81,18 @@ export default function Recommendations(props) {
80
81
  // recreate a new AbortController for each call
81
82
  let controller = new AbortController();
82
83
  abortControllerRef.current = controller;
83
- !loggedInUsersAccount.data.secureSupport
84
- ? fetchWatsonXRecommendations(recommendationDispatch, payload, MAXROW, recPageSize, 0, true, queryFilters, controller.signal)
85
- : fetchRecommendations(recommendationDispatch, payload, MAXROW, recPageSize, 0, true, caseNumber, isSecureSupportAccount, queryFilters, controller.signal);
84
+ console.log({ payload });
85
+ if (!isEmpty(issue)) {
86
+ !loggedInUsersAccount.data.secureSupport
87
+ ? fetchWatsonXRecommendations(recommendationDispatch, payload, MAXROW, recPageSize, 0, true, queryFilters, controller.signal)
88
+ : fetchRecommendations(recommendationDispatch, payload, MAXROW, recPageSize, 0, true, caseNumber, isSecureSupportAccount, queryFilters, controller.signal);
89
+ props.userSeenRecommendations && props.userSeenRecommendations(true);
90
+ recommendationDispatch({
91
+ type: RecommendationsConstants.userViewedDocs,
92
+ payload: { userViewedDocs: true },
93
+ });
94
+ console.log('shouldve passed as true to user seeing the stuff');
95
+ }
86
96
  }, [
87
97
  activeSection,
88
98
  environment,
@@ -91,6 +101,7 @@ export default function Recommendations(props) {
91
101
  sessionRestoreDispatch,
92
102
  summary,
93
103
  version,
104
+ issue,
94
105
  recommendationState.insightsKcsIds,
95
106
  ], 1000);
96
107
  useEffect(() => {
@@ -136,7 +147,7 @@ export default function Recommendations(props) {
136
147
  dtmTrackEvent('recommendation click', caseNumber, `${product}|${version}`);
137
148
  };
138
149
  return (React.createElement(React.Fragment, null,
139
- React.createElement(LoadingDots, { className: "recommendation-loading-dots", show: recommendationState.isLoadingRecommendations && !isEmpty(summary) }),
150
+ React.createElement(LoadingDots, { className: "recommendation-loading-dots", show: recommendationState.isLoadingRecommendations && !isEmpty(summary) && !isEmpty(issue) }),
140
151
  React.createElement("div", { className: "recommendation-list pf-v5-u-pt-md", ref: resultRowRef },
141
152
  recommendationState.visibleDocs.length !== 0 && (React.createElement(Label, { color: "purple", className: "pf-v5-u-mb-md" },
142
153
  React.createElement(WatsonxAiIcon, { fillColor: "#6753ac", className: "pf-v5-u-mr-xs" }),
@@ -1 +1 @@
1
- {"version":3,"file":"Review.d.ts","sourceRoot":"","sources":["../../../../src/components/Review/Review.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAInD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAuBlE,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;CACpD;AACD,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,KAAK,EAAE,MAAM,qBAsE3C"}
1
+ {"version":3,"file":"Review.d.ts","sourceRoot":"","sources":["../../../../src/components/Review/Review.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAInD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAsBlE,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;CACpD;AACD,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,KAAK,EAAE,MAAM,qBAsE3C"}
@@ -13,7 +13,6 @@ import CaseGroup from '../CaseInformation/CaseGroup';
13
13
  import CaseType from '../CaseInformation/CaseType';
14
14
  import { ContactPhoneNumber } from '../CaseInformation/ContactPhoneNumber';
15
15
  import { ContactPhoneNumberAlert } from '../CaseInformation/ContactPhoneNumberAlert';
16
- import Description from '../CaseInformation/Description';
17
16
  import Fts from '../CaseInformation/Fts';
18
17
  import Severity from '../CaseInformation/Severity';
19
18
  import SupportLevel from '../CaseInformation/SupportLevel';
@@ -52,7 +51,6 @@ export default function Review(props) {
52
51
  React.createElement(AllProductsSelector, { routeProps: props.routeProps, loadTCOnChange: true, showTCAfterButtonClicked: true, checkEntitledProduct: true }),
53
52
  React.createElement(OpenShiftClusterId, null),
54
53
  React.createElement(Hostname, null),
55
- React.createElement(Description, { inlineEditable: true, hideSaveCancel: true }),
56
54
  React.createElement(KtQuestions, { inlineEditable: true, hideSaveCancel: true }),
57
55
  React.createElement(CaseType, { hideIdea: true }),
58
56
  React.createElement(SupportLevel, null),
@@ -1 +1 @@
1
- {"version":3,"file":"TroubleshootSection.d.ts","sourceRoot":"","sources":["../../../../src/components/TroubleshootSection/TroubleshootSection.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAU1C,UAAU,MAAM;IACZ,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC5B;AASD,iBAAS,mBAAmB,CAAC,KAAK,EAAE,MAAM,qBAsEzC;kBAtEQ,mBAAmB;;;AAyE5B,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"TroubleshootSection.d.ts","sourceRoot":"","sources":["../../../../src/components/TroubleshootSection/TroubleshootSection.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAU1C,UAAU,MAAM;IACZ,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC5B;AASD,iBAAS,mBAAmB,CAAC,KAAK,EAAE,MAAM,qBA4EzC;kBA5EQ,mBAAmB;;;AA+E5B,eAAe,mBAAmB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { Card, CardBody, CardHeader, CardTitle } from '@patternfly/react-core';
2
- import { ErrorBoundary, LoadingDots } from '@rh-support/components';
2
+ import { ErrorBoundary, LoadingDots, MoreOrLess } from '@rh-support/components';
3
3
  import { PreviousCaseTypes } from '@rh-support/utils';
4
4
  import isEmpty from 'lodash/isEmpty';
5
5
  import isEqual from 'lodash/isEqual';
@@ -22,12 +22,13 @@ function TroubleshootSection(props) {
22
22
  var _a;
23
23
  const { t } = useTranslation();
24
24
  const { topContentState: { topContent }, } = useContext(TCStateContext);
25
- const { product, version, summary, isCreatingCase, caseType } = useCaseSelector((state) => ({
25
+ const { product, version, summary, isCreatingCase, caseType, issue } = useCaseSelector((state) => ({
26
26
  product: state.caseDetails.product,
27
27
  version: state.caseDetails.version,
28
28
  summary: state.caseDetails.summary,
29
29
  isCreatingCase: state.isCreatingCase,
30
30
  caseType: state.caseDetails.caseType,
31
+ issue: state.caseDetails.issue,
31
32
  }), isEqual);
32
33
  const canShowTopProducts = isEmpty(product);
33
34
  const canShowTopContent = !canShowTopProducts && ((_a = topContent === null || topContent === void 0 ? void 0 : topContent.data) === null || _a === void 0 ? void 0 : _a.length) > 0;
@@ -42,8 +43,11 @@ function TroubleshootSection(props) {
42
43
  React.createElement("span", { className: "pf-v5-u-font-family-heading pf-v5-u-ml-xl pf-v5-u-pr-xs" }, "Version"),
43
44
  ' ',
44
45
  version),
45
- React.createElement("div", { className: "pf-v5-u-font-family-heading" }, "Problem statement"),
46
- React.createElement("p", { className: "pf-v5-u-mb-xl" }, summary)),
46
+ React.createElement("div", { className: "pf-v5-u-font-family-heading" }, "Title"),
47
+ React.createElement("p", { className: "pf-v5-u-mb-xl" }, summary),
48
+ React.createElement("div", { className: "pf-v5-u-font-family-heading" }, "Problem description"),
49
+ React.createElement("p", { className: "pf-v5-u-mb-xl" },
50
+ React.createElement(MoreOrLess, { maxHeight: 93 }, issue))),
47
51
  !isCreatingCase && (React.createElement(OpenShiftClusterId, { className: "push-bottom", "data-tracking-id": "troubleshoot-section-openshift-cluster-id" })),
48
52
  React.createElement(LoadingDots, { show: topContent.isFetching }),
49
53
  topContent.data.length === 0 && (React.createElement(Card, { id: "card", className: "card-support top-recommendations pf-v5-u-mb-md", isCompact: true },
@@ -1 +1 @@
1
- {"version":3,"file":"WidgetFileUploader.d.ts","sourceRoot":"","sources":["../../../../../src/components/shared/fileUpload/WidgetFileUploader.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,OAAO,KAA0C,MAAM,OAAO,CAAC;AA0B/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAInD,UAAU,MAAO,SAAQ,wBAAwB,EAAE,gBAAgB;IAC/D,UAAU,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;IACtC,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB;AAYD,iBAAS,kBAAkB,CAAC,KAAK,EAAE,MAAM,qBA8OxC;kBA9OQ,kBAAkB;;;AAkP3B,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
1
+ {"version":3,"file":"WidgetFileUploader.d.ts","sourceRoot":"","sources":["../../../../../src/components/shared/fileUpload/WidgetFileUploader.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,OAAO,KAA0C,MAAM,OAAO,CAAC;AA0B/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAInD,UAAU,MAAO,SAAQ,wBAAwB,EAAE,gBAAgB;IAC/D,UAAU,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;IACtC,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB;AAYD,iBAAS,kBAAkB,CAAC,KAAK,EAAE,MAAM,qBA6OxC;kBA7OQ,kBAAkB;;;AAiP3B,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
@@ -152,10 +152,9 @@ function WidgetFileUploader(props) {
152
152
  React.createElement(WidgetFileSelector, { isSessionId: props.isSessionId, isPrivate: props.isPrivate, isIdea: props.isIdea, showFileExceed: fileExceedInfo }),
153
153
  !hasSomeSelectedFiles(selectedLocalFiles) ? ((!props.isIdea && props.helperText) || (React.createElement("p", { className: "pf-v5-u-mt-sm" },
154
154
  !props.isIdea ? (React.createElement(Trans, { i18nKey: "i18nUploadSosReport" },
155
- "Upload a",
155
+ "To help us provide the right guidance, upload a",
156
156
  ' ',
157
- React.createElement("a", { href: "/solutions/3592", target: "_blank" }, "sosreport"),
158
- "to help us provide the best solutions for your system.")) : (React.createElement("span", { className: "pf-v5-u-font-family-redhatVF-heading-sans-serif pf-v5-u-color-300" },
157
+ React.createElement("a", { href: "/solutions/3592", target: "_blank" }, "sosreport"))) : (React.createElement("span", { className: "pf-v5-u-font-family-redhatVF-heading-sans-serif pf-v5-u-color-300" },
159
158
  React.createElement(Trans, null, "Allowed file types: png, gif, jpg, jpeg."))),
160
159
  ' '))) : (React.createElement(React.Fragment, null,
161
160
  unallowedLocalFileExists && (React.createElement(Alert, { variant: "danger", title: t('File type is not allowed on this support type. Please remove file to proceed.') })),
@@ -1 +1 @@
1
- {"version":3,"file":"useIsSectionValid.d.ts","sourceRoot":"","sources":["../../../../src/components/shared/useIsSectionValid.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAoB1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAInE,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,gBAAgB;;;;;EA4L9D"}
1
+ {"version":3,"file":"useIsSectionValid.d.ts","sourceRoot":"","sources":["../../../../src/components/shared/useIsSectionValid.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAqB1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAInE,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,gBAAgB;;;;;EAgM9D"}
@@ -8,13 +8,13 @@ import { useCaseSelector } from '../../context/CaseContext';
8
8
  import { RecommendationStateContext } from '../../context/RecommendationContext';
9
9
  import { RouteContext } from '../../context/RouteContext';
10
10
  import { TCStateContext } from '../../context/TopContentContext';
11
- import { CASE_REFERENCE_NUMBER_LIMIT, CONTACT_INFO_24X7_LIMIT, HOSTNAME_LENGTH_LIMIT, SUMMARY_LENGTH_LIMIT, } from '../../reducers/CaseConstNTypes';
11
+ import { CASE_REFERENCE_NUMBER_LIMIT, CONTACT_INFO_24X7_LIMIT, HOSTNAME_LENGTH_LIMIT, ISSUE_SUMMARY_LENGTH_LIMIT, TITLE_SUMMARY_LENGTH_LIMIT, } from '../../reducers/CaseConstNTypes';
12
12
  import { isCaseInformationSectionValid, isCaseManagementStateValid, isCaseStateValid, isClusterIDValid, isIdeaCaseStateValid, } from '../../reducers/CaseHelpers';
13
13
  import { AppRouteSections } from '../../reducers/RouteConstNTypes';
14
14
  import { AttachmentStateContext } from './fileUpload/reducer/AttachmentReducerContext';
15
15
  export function useIsSectionValid(sectionName) {
16
16
  var _a, _b;
17
- const { caseState, caseType, product, version, contactSSOName, accountNumber, summary, hostname, contactInfo24x7, alternateId, selectedAccountDetails, } = useCaseSelector((state) => ({
17
+ const { caseState, caseType, product, version, contactSSOName, accountNumber, summary, hostname, contactInfo24x7, alternateId, selectedAccountDetails, issue, } = useCaseSelector((state) => ({
18
18
  caseState: state,
19
19
  caseType: state.caseDetails.caseType,
20
20
  product: state.caseDetails.product,
@@ -26,6 +26,7 @@ export function useIsSectionValid(sectionName) {
26
26
  contactInfo24x7: state.caseDetails.contactInfo24x7,
27
27
  alternateId: state.caseDetails.alternateId,
28
28
  selectedAccountDetails: state.selectedAccountDetails,
29
+ issue: state.caseDetails.issue,
29
30
  }), isEqual);
30
31
  const { globalMetadataState: { allProducts, loggedInUserJwtToken }, } = useContext(GlobalMetadataStateContext);
31
32
  const { topContentState: { topContent }, } = useContext(TCStateContext);
@@ -57,8 +58,10 @@ export function useIsSectionValid(sectionName) {
57
58
  !allProducts.isError &&
58
59
  !topContent.isFetching &&
59
60
  !isEmpty(summary) &&
61
+ !isEmpty(issue) &&
60
62
  !recommendationState.isLoadingRecommendations &&
61
- (summary === null || summary === void 0 ? void 0 : summary.length) <= SUMMARY_LENGTH_LIMIT);
63
+ (summary === null || summary === void 0 ? void 0 : summary.length) <= TITLE_SUMMARY_LENGTH_LIMIT &&
64
+ (issue === null || issue === void 0 ? void 0 : issue.length) <= ISSUE_SUMMARY_LENGTH_LIMIT);
62
65
  };
63
66
  const isCaseManagementSectionValid = () => {
64
67
  const hasContactInfo24x7ValidLength = contactInfo24x7
@@ -1 +1 @@
1
- {"version":3,"file":"GlobalTroubleshootEffects.d.ts","sourceRoot":"","sources":["../../../../src/components/wizardLayout/GlobalTroubleshootEffects.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAkD,MAAM,OAAO,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAWvD,OAAO,EAAqB,eAAe,EAAE,MAAM,iCAAiC,CAAC;AASrF,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;CACpD;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,qBAwVtD"}
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"}
@@ -7,11 +7,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
- import { useDebounce, usePrevious } from '@rh-support/components';
10
+ import { useDebounce } from '@rh-support/components';
11
11
  import { GlobalMetadataStateContext, useUserPreferences } from '@rh-support/react-context';
12
12
  import { ability, CaseListFields, resourceActions, resources } from '@rh-support/user-permissions';
13
- import { getVersion } from '@rh-support/utils';
14
- import { isUndefined } from 'lodash';
15
13
  import findIndex from 'lodash/findIndex';
16
14
  import includes from 'lodash/includes';
17
15
  import isEmpty from 'lodash/isEmpty';
@@ -25,11 +23,10 @@ import { TCDispatchContext, TCStateContext } from '../../context/TopContentConte
25
23
  import { useResetCaseCreate } from '../../hooks/useResetCaseCreate';
26
24
  import { CASE_DEATILS_SOURCE_REFERRER_LIMIT } from '../../reducers/CaseConstNTypes';
27
25
  import { getDescriptionWOQues } from '../../reducers/CaseHelpers';
28
- import { setCaseAccountNumber, setCaseDetails, setCaseOwner, setCaseState } from '../../reducers/CaseReducer';
26
+ import { setCaseAccountNumber, setCaseDetails, setCaseOwner } from '../../reducers/CaseReducer';
29
27
  import { setRouteFlags } from '../../reducers/RouteReducer';
30
28
  import { fetchEdmundAbbottRules } from '../../reducers/RulesReducer';
31
29
  import { fetchTopContent } from '../../reducers/TopContentReducer';
32
- import { isClusterIdEnabledForProduct } from '../../utils/caseOpenshiftClusterIdUtils';
33
30
  import RouteUtils from '../../utils/routeUtils';
34
31
  import Constants from '../shared/Constants';
35
32
  import { AttachmentStateContext } from '../shared/fileUpload/reducer/AttachmentReducerContext';
@@ -257,38 +254,5 @@ export function GlobalTroubleshootEffects(props) {
257
254
  }
258
255
  // eslint-disable-next-line react-hooks/exhaustive-deps
259
256
  }, [loggedInUsersAccount.data]);
260
- /**
261
- * When user change version (on product component page or preview page) need to reset clusterID states
262
- * If version change happens because od session restore, need to skip this otherwise restored value will be reset
263
- */
264
- const previousVersion = usePrevious(version);
265
- const previousActiveSessionId = usePrevious(activeSessionId);
266
- useEffect(() => {
267
- var _a;
268
- if (isEmpty(product) || isEmpty(version) || activeSessionId !== previousActiveSessionId)
269
- return;
270
- // we need to reset openshift cluster states only when major version is different
271
- // this logic can be removed when version 3 is depricated
272
- const oldMajorVersion = previousVersion && getVersion(previousVersion).major;
273
- const newMajorVersion = getVersion(version).major;
274
- const hasCluster = isClusterIdEnabledForProduct(product, (_a = allProducts.data) === null || _a === void 0 ? void 0 : _a.productsResult);
275
- // Need to check `hasCluster` is empty as when product is changing from shift product to non-shift
276
- // product new product will don't have any cluster
277
- const isClusterInfoShouldBeReset = !hasCluster || (hasCluster && !isUndefined(oldMajorVersion) && oldMajorVersion !== newMajorVersion);
278
- const isOpenShiftV3 = product === 'OpenShift Container Platform' && newMajorVersion === '3';
279
- if (isClusterInfoShouldBeReset) {
280
- setCaseDetails(caseDispatch, {
281
- openshiftClusterID: '',
282
- openshiftClusterVersion: '',
283
- noClusterIdReason: '',
284
- noClusterIdReasonExplanation: '',
285
- });
286
- setCaseState(caseDispatch, { v3ClusterName: '' });
287
- }
288
- if (!isOpenShiftV3) {
289
- setCaseState(caseDispatch, { v3ClusterName: '' });
290
- }
291
- // eslint-disable-next-line react-hooks/exhaustive-deps
292
- }, [product, version, allProducts.data.productsResult, caseDispatch]);
293
257
  return React.createElement(React.Fragment, null);
294
258
  }
@@ -1 +1 @@
1
- {"version":3,"file":"WizardMain.d.ts","sourceRoot":"","sources":["../../../../src/components/wizardLayout/WizardMain.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAE9D,OAAO,EAAS,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAK9D,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,qBA+GhC;AACD,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"WizardMain.d.ts","sourceRoot":"","sources":["../../../../src/components/wizardLayout/WizardMain.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAE9D,OAAO,EAAS,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAK9D,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,qBAuHhC;AACD,eAAe,UAAU,CAAC"}
@@ -18,9 +18,14 @@ function WizardMain(props) {
18
18
  const { isCreatingCase } = useCaseSelector((state) => ({
19
19
  isCreatingCase: state.isCreatingCase,
20
20
  }), isEqual);
21
- const { getStepsSequece } = useWizard(props.routeProps);
21
+ const [userSeenRecommendations, setUserSeenRecommendations] = useState(false);
22
+ const { getStepsSequece } = useWizard(props.routeProps, {
23
+ userSeenRecommendationsfn: setUserSeenRecommendations,
24
+ userSeenRecommendationsValue: userSeenRecommendations,
25
+ });
22
26
  const dispatchToRouteReducer = useContext(RouteDispatchContext);
23
27
  const { t } = useTranslation();
28
+ console.log('TOP DAWG, ', userSeenRecommendations);
24
29
  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" },
25
30
  React.createElement(Suspense, { fallback: React.createElement(LoadingIndicator, { size: "sm" }) },
26
31
  React.createElement(SubmitCase, { routeProps: props.routeProps }))));
@@ -54,7 +59,7 @@ function WizardMain(props) {
54
59
  }, onBack: () => {
55
60
  onBack();
56
61
  focusWizardMainPanel();
57
- }, activeStep: activeStep, onSubmit: onSubmit, confirmSupportModal: props.confirmSupportModal, onShowRestUpdate: (flag) => setShowRestFlag(flag) }));
62
+ }, activeStep: activeStep, onSubmit: onSubmit, confirmSupportModal: props.confirmSupportModal, onShowRestUpdate: (flag) => setShowRestFlag(flag), userSeenRecommendations: userSeenRecommendations }));
58
63
  })));
59
64
  // To add a new step to wizard first need to add the component to appRouteConfugurations
60
65
  // in useWizard file then add it to step squences in RouteConstNTypes
@@ -9,6 +9,7 @@ interface IProps {
9
9
  onSubmit: () => void;
10
10
  confirmSupportModal: (hasPreferredSecureSupportAccount: boolean) => void;
11
11
  onShowRestUpdate: (flag: boolean) => void;
12
+ userSeenRecommendations?: boolean;
12
13
  }
13
14
  declare function WizardNavigation(props: IProps): React.JSX.Element;
14
15
  declare namespace WizardNavigation {
@@ -1 +1 @@
1
- {"version":3,"file":"WizardNavigation.d.ts","sourceRoot":"","sources":["../../../../src/components/wizardLayout/WizardNavigation.tsx"],"names":[],"mappings":"AAOA,OAAO,KAA+B,MAAM,OAAO,CAAC;AAEpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAMnD,OAAO,EAAoB,eAAe,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAK3G,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACjD,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC3C,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,mBAAmB,EAAE,CAAC,gCAAgC,EAAE,OAAO,KAAK,IAAI,CAAC;IACzE,gBAAgB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CAC7C;AAGD,iBAAS,gBAAgB,CAAC,KAAK,EAAE,MAAM,qBA0JtC;kBA1JQ,gBAAgB;;;AA4JzB,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"WizardNavigation.d.ts","sourceRoot":"","sources":["../../../../src/components/wizardLayout/WizardNavigation.tsx"],"names":[],"mappings":"AAOA,OAAO,KAA+B,MAAM,OAAO,CAAC;AAEpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAMnD,OAAO,EAAoB,eAAe,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAK3G,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACjD,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC3C,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,mBAAmB,EAAE,CAAC,gCAAgC,EAAE,OAAO,KAAK,IAAI,CAAC;IACzE,gBAAgB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACrC;AAGD,iBAAS,gBAAgB,CAAC,KAAK,EAAE,MAAM,qBAyJtC;kBAzJQ,gBAAgB;;;AA2JzB,eAAe,gBAAgB,CAAC"}
@@ -105,7 +105,8 @@ function WizardNavigation(props) {
105
105
  const isEntitledProductLocal = isSearchIntent ? true : isEntitledProduct;
106
106
  return (React.createElement(React.Fragment, null,
107
107
  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" }, t('Go back'))),
108
- React.createElement("button", { disabled: (!isEntitledProductLocal && props.activeStep.nextButtonLabel === 'Get support') ||
108
+ React.createElement("button", { disabled: !props.userSeenRecommendations ||
109
+ (!isEntitledProductLocal && props.activeStep.nextButtonLabel === 'Get support') ||
109
110
  (!isSectionValidFn(props.activeStep.id) && isNextBtnClickedToShowValidationError) ||
110
111
  noValidEntitlement, onClick: onNext, className: "btn btn-app btn-primary main-nav-button", "data-tracking-id": `next-of-${activeSection}`, type: "button" }, t(props.activeStep.nextButtonLabel)),
111
112
  activeSection === AppRouteSections.TROUBLESHOOT && isFileRecommendationsTriggered && (React.createElement(Button, { onClick: handleFileRecsSelfSolved, variant: ButtonVariant.secondary, className: "issue-solved-button solved-issue-button", "data-tracking-id": "troubleshoot-self-solved-issue" }, t('I solved my issue'))),
@@ -1,4 +1,9 @@
1
- export declare function useWizard(routeProps: any): {
1
+ interface IProps {
2
+ userSeenRecommendationsfn?: any;
3
+ userSeenRecommendationsValue: boolean;
4
+ }
5
+ export declare function useWizard(routeProps: any, props?: IProps): {
2
6
  getStepsSequece: (showRest?: boolean) => any;
3
7
  };
8
+ export {};
4
9
  //# sourceMappingURL=useWizard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useWizard.d.ts","sourceRoot":"","sources":["../../../src/hooks/useWizard.tsx"],"names":[],"mappings":"AA+BA,wBAAgB,SAAS,CAAC,UAAU,KAAA;iCA8OG,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;CACzC;AAED,wBAAgB,SAAS,CAAC,UAAU,KAAA,EAAE,KAAK,CAAC,EAAE,MAAM;iCAqPb,OAAO;EAwC7C"}
@@ -19,16 +19,17 @@ import { RouteContext } from '../context/RouteContext';
19
19
  import { TCStateContext } from '../context/TopContentContext';
20
20
  import { AppRouteSections, openCaseNonTechnicalSequence, openCaseRouteSectionSequence, searchIntentRouteSectionSequence, troubleshootNonTechnicalSequence, troubleshootRouteSectionsSequence, } from '../reducers/RouteConstNTypes';
21
21
  import RouteUtils from '../utils/routeUtils';
22
- export function useWizard(routeProps) {
22
+ export function useWizard(routeProps, props) {
23
23
  const { routeState: { activeSection, isSearchIntent, isNextBtnClickedToShowValidationError }, } = useContext(RouteContext);
24
24
  // state value was available later - reading dirctly from url
25
25
  const isCaseCreate = RouteUtils.getQueryParams(routeProps).caseCreate === 'true';
26
26
  const { recommendationState: { isLoadingRecommendations }, } = useContext(RecommendationStateContext);
27
27
  const { topContentState: { topContent }, } = useContext(TCStateContext);
28
- const { isSelectedAccounntSecureSupport, summary, caseType } = useCaseSelector((state) => ({
28
+ const { isSelectedAccounntSecureSupport, summary, caseType, issue } = useCaseSelector((state) => ({
29
29
  isSelectedAccounntSecureSupport: state.selectedAccountDetails.data.secureSupport,
30
30
  summary: state.caseDetails.summary,
31
31
  caseType: state.caseDetails.caseType,
32
+ issue: state.caseDetails.issue,
32
33
  }), isEqual);
33
34
  const { t } = useTranslation();
34
35
  const { isSectionValidFn, isActiveSectionValid } = useIsSectionValid(activeSection);
@@ -40,11 +41,13 @@ export function useWizard(routeProps) {
40
41
  };
41
42
  const alertMessage = () => {
42
43
  // alert title and variant based on multiple conditions for two different sections
43
- const isLoading = topContent.isFetching || (isLoadingRecommendations && summary);
44
+ const isLoading = topContent.isFetching || (isLoadingRecommendations && summary && issue);
44
45
  const title = isLoading
45
46
  ? t('Please wait while recommendations are loading')
46
47
  : t('Please address the errors to proceed');
47
- return (React.createElement(AlertMessage, { show: isNextBtnClickedToShowValidationError && !isActiveSectionValid, variant: (isLoadingRecommendations && summary) || topContent.isFetching ? AlertType.INFO : AlertType.DANGER, isInline: true, title: title, className: "pf-v5-u-mb-lg", "data-tracking-id": isLoading ? 'wait-recommendations-loading' : 'proceed-address-errors' }));
48
+ return (React.createElement(AlertMessage, { show: isNextBtnClickedToShowValidationError && !isActiveSectionValid, variant: (isLoadingRecommendations && summary && issue) || topContent.isFetching
49
+ ? AlertType.INFO
50
+ : AlertType.DANGER, isInline: true, title: title, className: "pf-v5-u-mb-lg", "data-tracking-id": isLoading ? 'wait-recommendations-loading' : 'proceed-address-errors' }));
48
51
  };
49
52
  // components that are used in wizard steps
50
53
  const appRouteConfugurations = {
@@ -55,11 +58,12 @@ export function useWizard(routeProps) {
55
58
  [AppRouteSections.SUMMARIZE]: Object.assign(Object.assign({}, defaultRouteConfiguration), { id: AppRouteSections.SUMMARIZE, name: t('Summarize'), component: (React.createElement(MainSection, { stepNumber: 2, totalSteps: 6, section: AppRouteSections.SUMMARIZE, title: t('What are you having an issue with?') },
56
59
  React.createElement(Suspense, { fallback: React.createElement(LoadingIndicator, { size: "sm" }) },
57
60
  alertMessage(),
58
- React.createElement(ProductSelector, { routeProps: routeProps })))), canJumpTo: isSectionValidFn(AppRouteSections.SUMMARIZE) || activeSection === AppRouteSections.SUMMARIZE, nextButtonLabel: t('See more options') }),
61
+ React.createElement(ProductSelector, { routeProps: routeProps, userSeenRecommendations: props.userSeenRecommendationsfn })))), canJumpTo: isSectionValidFn(AppRouteSections.SUMMARIZE) || activeSection === AppRouteSections.SUMMARIZE, nextButtonLabel: t('See more options') }),
59
62
  [AppRouteSections.TROUBLESHOOT]: Object.assign(Object.assign({}, defaultRouteConfiguration), { id: AppRouteSections.TROUBLESHOOT, name: t('Troubleshoot'), component: (React.createElement(MainSection, { stepNumber: 3, totalSteps: 6, section: AppRouteSections.TROUBLESHOOT, title: t('Recommendations') },
60
63
  React.createElement(Suspense, { fallback: React.createElement(LoadingIndicator, { size: "sm" }) },
61
64
  alertMessage(),
62
- React.createElement(TroubleshootSection, null)))), canJumpTo: isSectionValidFn(AppRouteSections.TROUBLESHOOT) || activeSection === AppRouteSections.TROUBLESHOOT, nextButtonLabel: isCaseCreate ? t('Continue') : t('Convert to Case') }),
65
+ React.createElement(TroubleshootSection, null)))), canJumpTo: isSectionValidFn(AppRouteSections.TROUBLESHOOT || activeSection === AppRouteSections.TROUBLESHOOT) &&
66
+ (props === null || props === void 0 ? void 0 : props.userSeenRecommendationsValue), nextButtonLabel: isCaseCreate ? t('Continue') : t('Convert to Case') }),
63
67
  [AppRouteSections.DESCRIBE_MORE]: Object.assign(Object.assign({}, defaultRouteConfiguration), { id: AppRouteSections.DESCRIBE_MORE, name: t('Describe more'), component: (React.createElement(MainSection, { stepNumber: 4, totalSteps: 6, section: AppRouteSections.DESCRIBE_MORE, title: React.createElement(React.Fragment, null,
64
68
  t('Case information'),
65
69
  isEmpty(RouteUtils.seBasePath) && isSelectedAccounntSecureSupport && (React.createElement("span", { className: "secured-support" },
@@ -7,11 +7,14 @@ import { ICaseNotificationAddresses } from '@cee-eng/hydrajs/@types/models/case'
7
7
  import { IContact } from '@cee-eng/hydrajs/@types/models/contact';
8
8
  import { IAction, IAPIError, IApiResponseDetails } from '@rh-support/types/shared';
9
9
  import { Dispatch } from 'react';
10
- export declare const SUMMARY_LENGTH_LIMIT = 255;
10
+ export declare const TITLE_SUMMARY_LENGTH_LIMIT = 255;
11
+ export declare const ISSUE_SUMMARY_LENGTH_LIMIT = 20000;
12
+ export declare const SUMMARY_LENGTH_LIMIT = 16000;
13
+ export declare const KTQUESTION_MAX_LIMIT = 4000;
11
14
  export declare const ATTACHMENT_DESCRIPTION_LENGTH_LIMIT = 255;
12
15
  export declare const ESCALATION_SUBJECT_LENGTH_LIMIT = 255;
13
16
  export declare const DESCRIPTION_LENGTH_LIMIT = 32000;
14
- export declare const MODIFIED_DESCRIPTION_LENGTH_LIMIT = 31000;
17
+ export declare const MODIFIED_DESCRIPTION_LENGTH_LIMIT = 32000;
15
18
  export declare const HOSTNAME_LENGTH_LIMIT = 255;
16
19
  export declare const CONTACT_INFO_24X7_LIMIT = 32768;
17
20
  export declare const CLUSTER_ID_LIMIT = 255;
@@ -37,11 +40,14 @@ export declare const CASE_DEATILS_SOURCE_REFERRER_LIMIT = 255;
37
40
  export declare const summaryMaxLengthErrorMessage = "Case summary cannot be more than {{limit}} characters.";
38
41
  export declare enum KtQuestionConstant {
39
42
  issue = "What are you experiencing? What are you expecting to happen?",
40
- timeFramesAndUrgency = "Define the value or impact to you or the business",
41
- environment = "Where are you experiencing this behavior? What environment?",
42
- periodicityOfIssue = "When does this behavior occur? Frequency? Repeatedly? At certain times?",
43
+ timeFramesAndUrgency = "Describe the impact to you or the business",
44
+ environment = "In what environment are you experiencing this behavior?",
45
+ periodicityOfIssue = "How frequently does this behavior occur? Does it occur repeatedly or at certain times?",
43
46
  ideaIssue = "Please describe your request"
44
47
  }
48
+ export declare const KTQ2LengthError = "Please describe the value and impact to your business in 4000 characters or less.";
49
+ export declare const KTQ3LengthError = "Please describe the location and environment to your business in 4000 characters or less.";
50
+ export declare const KTQ4LengthError = "Please describe the time and frequency when the issue occurs in 4000 characters or less.";
45
51
  export declare const enum SupportLevelsInternal {
46
52
  SELF_SUPPORT = "selfSupport",
47
53
  STANDARD = "standard",
@@ -1 +1 @@
1
- {"version":3,"file":"CaseConstNTypes.d.ts","sourceRoot":"","sources":["../../../src/reducers/CaseConstNTypes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CaseConstNTypes.d.ts","sourceRoot":"","sources":["../../../src/reducers/CaseConstNTypes.ts"],"names":[],"mappings":"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"}