@rh-support/troubleshoot 2.5.45 → 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.
- package/lib/esm/components/CaseEditView/CaseDetailsTabs.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/CaseDetailsTabs.js +9 -4
- package/lib/esm/components/CaseEditView/Tabs/CaseSummary/CaseSummary.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseSummary/CaseSummary.js +14 -8
- package/lib/esm/components/CaseEditView/Tabs/CaseSummary/CaseSummaryErrorMessage.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseSummary/CaseSummaryErrorMessage.js +4 -10
- package/lib/esm/components/CaseEditView/Tabs/CaseSummary/caseSummary.css +3 -3
- package/lib/esm/css/case.css +23 -0
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CaseDetailsTabs.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseEditView/CaseDetailsTabs.tsx"],"names":[],"mappings":"
|
|
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
|
-
|
|
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,
|
|
138
|
-
|
|
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,
|
|
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
|
|
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
|
|
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
|
|
87
|
-
React.createElement(
|
|
88
|
-
|
|
89
|
-
React.createElement("
|
|
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,
|
|
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
|
|
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/>
|
|
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:
|
|
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-
|
|
1
|
+
.ai-case-summary-container {
|
|
2
2
|
margin-top: 10px;
|
|
3
3
|
}
|
|
4
4
|
|
|
5
|
-
.ai-
|
|
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-
|
|
12
|
+
.ai-summary-date {
|
|
13
13
|
color: black;
|
|
14
14
|
font-size: 12px;
|
|
15
15
|
font-weight: 400;
|
package/lib/esm/css/case.css
CHANGED
|
@@ -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.
|
|
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.
|
|
62
|
-
"@rh-support/react-context": "2.5.
|
|
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": "
|
|
137
|
+
"gitHead": "055bc8a9de6f81109f7fc040923b44d279c447c1"
|
|
138
138
|
}
|