@rh-support/troubleshoot 2.5.44 → 2.5.46

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.
@@ -1 +1 @@
1
- {"version":3,"file":"CaseDetailsTabs.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseEditView/CaseDetailsTabs.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAiD,MAAM,OAAO,CAAC;AAEtE,OAAO,EAAE,mBAAmB,EAAa,MAAM,kBAAkB,CAAC;AA0BlE,UAAU,MAAM;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,mBAAmB,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,KAAK,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;CACnD;AACD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,qBA8O5C"}
1
+ {"version":3,"file":"CaseDetailsTabs.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseEditView/CaseDetailsTabs.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAAiD,MAAM,OAAO,CAAC;AAEtE,OAAO,EAAE,mBAAmB,EAAa,MAAM,kBAAkB,CAAC;AA0BlE,UAAU,MAAM;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,mBAAmB,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,KAAK,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;CACnD;AACD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,qBA0P5C"}
@@ -1,4 +1,4 @@
1
- import { Tab, TabContent, Tabs, TabsComponent, TabTitleText, Text, TextContent, TextVariants, } from '@patternfly/react-core';
1
+ import { Label, Tab, TabContent, Tabs, TabsComponent, TabTitleText, Text, TextContent, TextVariants, } from '@patternfly/react-core';
2
2
  import { ErrorBoundary, LoadingIndicator } from '@rh-support/components';
3
3
  import { GlobalMetadataStateContext } from '@rh-support/react-context';
4
4
  import { ability, CaseDetailsFields, resourceActions, resources } from '@rh-support/user-permissions';
@@ -107,7 +107,8 @@ export function CaseDetailsTabs(props) {
107
107
  routePath: 'escalation',
108
108
  component: (React.createElement(RMEEscalationList, { escalations: caseEscalations.data, caseNumber: caseNumber, caseStatus: status, accountNumber: loggedInUserRights.data.getAccountNumber(), isInternal: loggedInUserRights.data.isInternal() })),
109
109
  });
110
- !loggedInUsersAccount.data.secureSupport &&
110
+ false &&
111
+ !loggedInUsersAccount.data.secureSupport &&
111
112
  tabsToRender.push({
112
113
  'data-tracking-id': 'case-history-tab',
113
114
  title: CaseDetailsTabsEnum.HISTORY,
@@ -134,8 +135,12 @@ export function CaseDetailsTabs(props) {
134
135
  };
135
136
  const isTabVisibleInPdfExport = (tab) => tab.title === CaseDetailsTabsEnum.DISCUSSION && pdfOption === 'Reduced' ? false : true;
136
137
  return (React.createElement("div", { className: "case-details-tabs", role: "region", ref: props.tabdRef },
137
- React.createElement(Tabs, { className: isExportingPDF ? 'hide-in-pdf' : '', activeKey: getActiveTabKey(), component: TabsComponent.nav, onSelect: handleTabClick, "aria-label": t('Case details tabs') }, tabsToRender.map((tab, index) => (React.createElement(Tab, { eventKey: index, tabContentRef: tab.ref, tabContentId: `pf-tab-${index}-${tab.title.split(' ')[0]}-tabpanel`, key: tab.title, href: `#${props.basePath}/${tab.routePath}`, "data-tracking-id": tab['data-tracking-id'], title: React.createElement(TabTitleText, null,
138
- React.createElement(Trans, null, tab.title)) })))),
138
+ React.createElement(Tabs, { className: isExportingPDF ? 'hide-in-pdf' : '', activeKey: getActiveTabKey(), component: TabsComponent.nav, onSelect: handleTabClick, "aria-label": t('Case details tabs') }, tabsToRender.map((tab, index) => (React.createElement(Tab, { eventKey: index, tabContentRef: tab.ref, tabContentId: `pf-tab-${index}-${tab.title.split(' ')[0]}-tabpanel`, key: tab.title, href: `#${props.basePath}/${tab.routePath}`, "data-tracking-id": tab['data-tracking-id'], title: React.createElement(TabTitleText, { className: tab.title === CaseDetailsTabsEnum.GENERATE_AI_CASE_SUMMARY
139
+ ? 'tab-title-with-badge'
140
+ : undefined },
141
+ React.createElement(Trans, null, tab.title),
142
+ tab.title === CaseDetailsTabsEnum.GENERATE_AI_CASE_SUMMARY && (React.createElement("div", { className: "gradient-border-badge" },
143
+ React.createElement(Label, { className: "preview-label" }, "Preview")))) })))),
139
144
  React.createElement("div", { className: "case-details-tabs-content pf-v5-u-pt-xl" }, tabsToRender.map((tab, index) => {
140
145
  return index === getActiveTabKey() && !isExportingPDF ? (React.createElement(TabContent, { eventKey: index, key: tab.key, id: `pf-tab-${index}-${tab.title.split(' ')[0]}-tabpanel`, ref: tab.ref, "aria-label": tab.title, hidden: isExportingPDF ? !isTabVisibleInPdfExport(tab) : index !== getActiveTabKey() },
141
146
  React.createElement(ErrorBoundary, { errorMsgInfo: {
@@ -1 +1 @@
1
- {"version":3,"file":"CaseSummary.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/CaseSummary/CaseSummary.tsx"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,CAAC;AAwB3B,OAAO,KAA8B,MAAM,OAAO,CAAC;AAOnD,UAAU,MAAM;IACZ,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,WAAW,UAAW,MAAM,sBAsKxC,CAAC"}
1
+ {"version":3,"file":"CaseSummary.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/CaseSummary/CaseSummary.tsx"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,CAAC;AAwB3B,OAAO,KAA8B,MAAM,OAAO,CAAC;AAOnD,UAAU,MAAM;IACZ,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,WAAW,UAAW,MAAM,sBA4KxC,CAAC"}
@@ -57,8 +57,13 @@ export const CaseSummary = (props) => {
57
57
  setCaseSummaryState(CaseSummaryStates.SUCCESS);
58
58
  }
59
59
  catch (error) {
60
+ if (error.message.includes('input comments text is too large')) {
61
+ setCaseSummaryState(CaseSummaryStates.INPUT_COMMENTS_TOO_LARGE);
62
+ }
63
+ else {
64
+ setCaseSummaryState(CaseSummaryStates.FAILED);
65
+ }
60
66
  setCaseSummaryData(getApiResourceObject(null, false, true, error.message));
61
- setCaseSummaryState(CaseSummaryStates.FAILED);
62
67
  }
63
68
  });
64
69
  fetchCaseSummary();
@@ -75,18 +80,19 @@ export const CaseSummary = (props) => {
75
80
  React.createElement("div", { dangerouslySetInnerHTML: { __html: sanitizedHtml } })));
76
81
  };
77
82
  return (React.createElement("section", { className: "card card-white" },
78
- React.createElement(Alert, { variant: AlertVariant.info, title: "Case recap uses AI. Check for mistakes.", isInline: true, actionLinks: React.createElement(AlertActionLink, { onClick: (e) => triggerAppFeedbackItem(e), href: "#" },
83
+ React.createElement(Alert, { variant: AlertVariant.info, title: "Case summary uses AI. Check for mistakes.", isInline: true, actionLinks: React.createElement(AlertActionLink, { onClick: (e) => triggerAppFeedbackItem(e), href: "#" },
79
84
  React.createElement(Trans, null, "Send Feedback")) },
80
85
  React.createElement("p", null, "By using this feature, your support case information will be used to create an AI-generated summary of your cases. Information may not be up-to-date or without error. Always review AI generated content prior to use. We encourage you to send feedback to improve the case summary feature")),
81
86
  caseSummaryState === CaseSummaryStates.NEW_CASE ? (React.createElement(EmptyState, { variant: EmptyStateVariant.lg },
82
- React.createElement(EmptyStateHeader, { titleText: React.createElement(Trans, null, "Unable to generate case recap"), icon: React.createElement(EmptyStateIcon, { icon: CubesIcon }), headingLevel: "h2" }),
87
+ React.createElement(EmptyStateHeader, { titleText: React.createElement(Trans, null, "Unable to generate case summary"), icon: React.createElement(EmptyStateIcon, { icon: CubesIcon }), headingLevel: "h2" }),
83
88
  React.createElement(EmptyStateBody, null,
84
89
  React.createElement("p", { className: "push-top-narrow" },
85
90
  React.createElement(Trans, null, errorMessage))))) : caseSummaryState === CaseSummaryStates.FAILED ||
86
- caseSummaryState === CaseSummaryStates.CASE_LANGUAGE_NOT_SUPPORTED ? (React.createElement(CaseSummaryErrorMessage, { caseSummaryState: caseSummaryState, caseNumber: props.caseNumber, caseSummaryId: (_a = caseSummaryData.data) === null || _a === void 0 ? void 0 : _a.id, errorMessage: errorMessage, setErrorMessage: setErrorMessage })) : caseSummaryState === CaseSummaryStates.SUCCESS ? (React.createElement(React.Fragment, null,
87
- React.createElement("div", { className: "ai-case-recap-container" },
88
- React.createElement("h2", { className: "ai-recap-title" }, "AI Case summary"),
89
- React.createElement("p", { className: "ai-recap-date" }, formatDate((_b = caseSummaryData.data) === null || _b === void 0 ? void 0 : _b.created_date, 'en-US', {
91
+ caseSummaryState === CaseSummaryStates.CASE_LANGUAGE_NOT_SUPPORTED ||
92
+ caseSummaryState === CaseSummaryStates.INPUT_COMMENTS_TOO_LARGE ? (React.createElement(CaseSummaryErrorMessage, { caseSummaryState: caseSummaryState, caseNumber: props.caseNumber, caseSummaryId: (_a = caseSummaryData.data) === null || _a === void 0 ? void 0 : _a.id, errorMessage: errorMessage, setErrorMessage: setErrorMessage })) : caseSummaryState === CaseSummaryStates.SUCCESS ? (React.createElement(React.Fragment, null,
93
+ React.createElement("div", { className: "ai-case-summary-container" },
94
+ React.createElement("h2", { className: "ai-summary-title" }, "AI Case summary"),
95
+ React.createElement("p", { className: "ai-summary-date" }, formatDate((_b = caseSummaryData.data) === null || _b === void 0 ? void 0 : _b.created_date, 'en-US', {
90
96
  month: 'short',
91
97
  day: 'numeric',
92
98
  year: 'numeric',
@@ -100,5 +106,5 @@ export const CaseSummary = (props) => {
100
106
  React.createElement(EmptyStateBody, null,
101
107
  React.createElement("p", { className: "push-top-narrow" },
102
108
  React.createElement(Trans, null, "Almost there! case summary will be ready in approximately 30 seconds."))))),
103
- React.createElement(SupportFeedbackModal, { isModalOpen: isFeedbackModalOpen, onClose: onCloseFeedbackModal, caseSummaryId: (_d = caseSummaryData.data) === null || _d === void 0 ? void 0 : _d.id, errorMessage: errorMessage, isCaseSummary: true })));
109
+ React.createElement(SupportFeedbackModal, { isModalOpen: isFeedbackModalOpen, onClose: onCloseFeedbackModal, caseSummaryId: ((_d = caseSummaryData.data) === null || _d === void 0 ? void 0 : _d.id) || null, errorMessage: errorMessage, isCaseSummary: true })));
104
110
  };
@@ -1 +1 @@
1
- {"version":3,"file":"CaseSummaryErrorMessage.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/CaseSummary/CaseSummaryErrorMessage.tsx"],"names":[],"mappings":"AAeA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAGnD,UAAU,MAAM;IACZ,gBAAgB,EAAE,GAAG,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,GAAG,CAAC;CACzB;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,qBAgGpD"}
1
+ {"version":3,"file":"CaseSummaryErrorMessage.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/CaseSummary/CaseSummaryErrorMessage.tsx"],"names":[],"mappings":"AAeA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAGnD,UAAU,MAAM;IACZ,gBAAgB,EAAE,GAAG,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,GAAG,CAAC;CACzB;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,qBAwFpD"}
@@ -14,27 +14,21 @@ export function CaseSummaryErrorMessage(props) {
14
14
  e.preventDefault();
15
15
  setIsFeedbackModalOpen(true);
16
16
  };
17
- const title = props.caseSummaryState === 'failed'
18
- ? 'Error while loading case recap'
19
- : props.caseSummaryState === 'case_language_not_supported' ||
20
- props.caseSummaryState === 'input_comments_too_large'
21
- ? 'Error while generating case recap'
22
- : undefined;
23
17
  useEffect(() => {
24
18
  if (!props.setErrorMessage)
25
19
  return;
26
20
  let message = '';
27
- const shared = `Failed to generate case recap for Case ${props.caseNumber}, due to `;
21
+ const shared = `Failed to generate case summary for Case ${props.caseNumber}, due to `;
28
22
  switch (props.caseSummaryState) {
29
23
  case 'failed':
30
24
  message =
31
- 'The AI is either currently unavailable or is processing case details. <br/> Try reloading the page';
25
+ 'The AI is either currently unavailable or is processing case details. <br/> or try reloading the page.';
32
26
  break;
33
27
  case 'case_language_not_supported':
34
28
  message = `${shared}unsupported case language.`;
35
29
  break;
36
30
  case 'input_comments_too_large':
37
- message = `${shared}input comments text is too large.`;
31
+ message = `${shared} overall input comments text is too large.`;
38
32
  break;
39
33
  default:
40
34
  break;
@@ -46,7 +40,7 @@ export function CaseSummaryErrorMessage(props) {
46
40
  }, []);
47
41
  return (React.createElement(React.Fragment, null,
48
42
  React.createElement(EmptyState, { variant: EmptyStateVariant.full },
49
- React.createElement(EmptyStateHeader, { titleText: title, icon: React.createElement(EmptyStateIcon, { icon: ExclamationCircleIcon, color: globalDangerColor100.value }), headingLevel: "h2" }),
43
+ React.createElement(EmptyStateHeader, { titleText: 'Error while loading case summary', icon: React.createElement(EmptyStateIcon, { icon: ExclamationCircleIcon, color: globalDangerColor100.value }), headingLevel: "h2" }),
50
44
  React.createElement(EmptyStateBody, null,
51
45
  React.createElement(Trans, null, props.errorMessage && React.createElement("div", { dangerouslySetInnerHTML: { __html: props.errorMessage } }))),
52
46
  React.createElement(EmptyStateFooter, null,
@@ -1,15 +1,15 @@
1
- .ai-case-recap-container {
1
+ .ai-case-summary-container {
2
2
  margin-top: 10px;
3
3
  }
4
4
 
5
- .ai-recap-title {
5
+ .ai-summary-title {
6
6
  font-size: 20px;
7
7
  font-family: 'Red Hat Display';
8
8
  font-weight: 500;
9
9
  margin-bottom: 8px;
10
10
  }
11
11
 
12
- .ai-recap-date {
12
+ .ai-summary-date {
13
13
  color: black;
14
14
  font-size: 12px;
15
15
  font-weight: 400;
@@ -321,6 +321,29 @@ input[aria-invalid='true'].pf-v5-c-form-control {
321
321
  padding-left: 1.5em;
322
322
  }
323
323
 
324
+ .tab-title-with-badge {
325
+ display: flex;
326
+ align-items: center;
327
+ gap: 8px;
328
+ }
329
+
330
+ .gradient-border-badge {
331
+ border-radius: 18px;
332
+ padding: 1px;
333
+ background: linear-gradient(to right, #f56e6e, #5e40be);
334
+ display: inline-block;
335
+ }
336
+
337
+ .preview-label {
338
+ border-radius: 18px;
339
+ background: white;
340
+ padding: 0px 8px;
341
+ }
342
+
343
+ .preview-label .pf-v5-c-label__content {
344
+ color: grey;
345
+ }
346
+
324
347
  /* Improves the sidebar loading */
325
348
  @media (min-width: 1450px) and (max-width: 2000px) {
326
349
  #rh-support-case .card.card-support {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rh-support/troubleshoot",
3
- "version": "2.5.44",
3
+ "version": "2.5.46",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "registry": "https://registry.npmjs.org"
@@ -58,8 +58,8 @@
58
58
  "@progress/kendo-licensing": "1.3.5",
59
59
  "@progress/kendo-react-pdf": "^5.16.0",
60
60
  "@redux-devtools/extension": "^3.3.0",
61
- "@rh-support/components": "2.5.18",
62
- "@rh-support/react-context": "2.5.20",
61
+ "@rh-support/components": "2.5.19",
62
+ "@rh-support/react-context": "2.5.21",
63
63
  "@rh-support/types": "2.0.5",
64
64
  "@rh-support/user-permissions": "2.5.12",
65
65
  "@rh-support/utils": "2.5.11",
@@ -134,5 +134,5 @@
134
134
  "defaults and supports es6-module",
135
135
  "maintained node versions"
136
136
  ],
137
- "gitHead": "48b1925b17a320ff0c74ed3a018274a5e4cb0a87"
137
+ "gitHead": "055bc8a9de6f81109f7fc040923b44d279c447c1"
138
138
  }