@rh-support/troubleshoot 2.6.107 → 2.6.118
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/AccountInfo/AccountSelector.js +1 -1
- package/lib/esm/components/AccountInfo/css/accountSelector.css +2 -3
- package/lib/esm/components/CaseEditView/Case.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Case.js +1 -1
- package/lib/esm/components/CaseEditView/CaseOverview/CaseOwnerInfo.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/CaseOverview/CaseOwnerInfo.js +1 -1
- package/lib/esm/components/CaseEditView/CaseOverview/CaseType.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/CaseOverview/CaseType.js +4 -2
- package/lib/esm/components/CaseEditView/CaseOverview/index.js +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseOpenshiftClusterId/CaseOpenShiftPopover.js +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/ProductVersion.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/ProductVersion.js +2 -4
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/PostComment.js +1 -2
- package/lib/esm/components/CaseEditView/Tabs/CaseHistory/Timeline.css +33 -13
- package/lib/esm/components/CaseEditView/Tabs/CaseSummary/CaseSummary.js +3 -3
- package/lib/esm/components/CaseEditView/Tabs/CaseSummary/CaseSummaryErrorMessage.js +1 -1
- package/lib/esm/components/CaseInformation/Description.d.ts.map +1 -1
- package/lib/esm/components/CaseInformation/Description.js +3 -1
- package/lib/esm/components/CaseInformation/Severity.d.ts.map +1 -1
- package/lib/esm/components/CaseInformation/Severity.js +1 -1
- package/lib/esm/components/CaseInformation/SupportLevel.d.ts.map +1 -1
- package/lib/esm/components/CaseInformation/SupportLevel.js +1 -1
- package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.d.ts.map +1 -1
- package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.js +6 -12
- package/lib/esm/components/OpenCase/OpenCase.d.ts.map +1 -1
- package/lib/esm/components/OpenCase/OpenCase.js +2 -8
- package/lib/esm/components/ProductSelector/AllProductsSelector.d.ts.map +1 -1
- package/lib/esm/components/ProductSelector/AllProductsSelector.js +6 -18
- package/lib/esm/components/ProductSelector/ProductSelector.d.ts.map +1 -1
- package/lib/esm/components/ProductSelector/ProductSelector.js +5 -12
- package/lib/esm/components/Recommendations/ClusterRecommendationItems.d.ts +0 -2
- package/lib/esm/components/Recommendations/ClusterRecommendationItems.d.ts.map +1 -1
- package/lib/esm/components/Recommendations/ClusterRecommendationItems.js +13 -16
- package/lib/esm/components/Recommendations/ClusterRecommendations.d.ts.map +1 -1
- package/lib/esm/components/Recommendations/ClusterRecommendations.js +4 -1
- package/lib/esm/components/Recommendations/Recommendations.d.ts.map +1 -1
- package/lib/esm/components/Recommendations/Recommendations.js +38 -38
- package/lib/esm/components/RemoteRider/RemoteRiderAcceptanceModal.d.ts.map +1 -1
- package/lib/esm/components/Review/Review.d.ts.map +1 -1
- package/lib/esm/components/Review/Review.js +1 -5
- package/lib/esm/components/Suggestions/TopContentSidebar.d.ts +3 -0
- package/lib/esm/components/Suggestions/TopContentSidebar.d.ts.map +1 -0
- package/lib/esm/components/Suggestions/TopContentSidebar.js +26 -0
- package/lib/esm/components/TroubleshootSection/AskRedHat.js +1 -1
- package/lib/esm/components/TroubleshootSection/TroubleshootSection.d.ts +9 -0
- package/lib/esm/components/TroubleshootSection/TroubleshootSection.d.ts.map +1 -1
- package/lib/esm/components/TroubleshootSection/TroubleshootSection.js +150 -44
- package/lib/esm/components/shared/useIsSectionValid.d.ts.map +1 -1
- package/lib/esm/components/shared/useIsSectionValid.js +26 -65
- package/lib/esm/components/wizardLayout/WizardAside.d.ts.map +1 -1
- package/lib/esm/components/wizardLayout/WizardAside.js +18 -9
- package/lib/esm/components/wizardLayout/WizardMain.d.ts.map +1 -1
- package/lib/esm/components/wizardLayout/WizardMain.js +110 -64
- package/lib/esm/components/wizardLayout/WizardNavigation.d.ts.map +1 -1
- package/lib/esm/components/wizardLayout/WizardNavigation.js +59 -53
- package/lib/esm/css/AskRedHat.css +9 -2
- package/lib/esm/css/app.css +1 -1
- package/lib/esm/hooks/useAB.d.ts +22 -0
- package/lib/esm/hooks/useAB.d.ts.map +1 -0
- package/lib/esm/hooks/useAB.js +37 -0
- package/lib/esm/hooks/useWizard.d.ts +4 -0
- package/lib/esm/hooks/useWizard.d.ts.map +1 -1
- package/lib/esm/hooks/useWizard.js +20 -6
- package/lib/esm/reducers/AIResponseConstNTypes.d.ts +17 -2
- package/lib/esm/reducers/AIResponseConstNTypes.d.ts.map +1 -1
- package/lib/esm/reducers/AIResponseConstNTypes.js +3 -0
- package/lib/esm/reducers/AIResponseReducer.d.ts +2 -0
- package/lib/esm/reducers/AIResponseReducer.d.ts.map +1 -1
- package/lib/esm/reducers/AIResponseReducer.js +17 -0
- package/lib/esm/reducers/CaseConstNTypes.js +3 -3
- package/lib/esm/reducers/CaseDiscussionTabReducer.js +1 -1
- package/lib/esm/reducers/CaseHelpers.d.ts +1 -2
- package/lib/esm/reducers/CaseHelpers.d.ts.map +1 -1
- package/lib/esm/reducers/CaseHelpers.js +1 -11
- package/lib/esm/reducers/RouteConstNTypes.d.ts.map +1 -1
- package/lib/esm/reducers/RouteConstNTypes.js +0 -1
- package/lib/esm/scss/_pf-overrides.scss +2 -23
- package/package.json +9 -7
|
@@ -79,7 +79,7 @@ function AccountSelector(props) {
|
|
|
79
79
|
// When internal user wants to open a case for a customer but customer account doesn't have entitlement, we show an error
|
|
80
80
|
useEffect(() => {
|
|
81
81
|
const getAccountEntitlement = () => __awaiter(this, void 0, void 0, function* () {
|
|
82
|
-
// internal user doesn't open case for customer. No need to check account
|
|
82
|
+
// internal user doesn't open case for customer. No need to check account entitlements
|
|
83
83
|
if (selectedAccountDetails.data.accountNumber === loggedInUsersAccount.data.accountNumber) {
|
|
84
84
|
setNoValidEntitlement(routeDispatch, false);
|
|
85
85
|
setShowNotEntitledMessage(false);
|
|
@@ -2,12 +2,11 @@
|
|
|
2
2
|
width: 100%;
|
|
3
3
|
}
|
|
4
4
|
|
|
5
|
-
.get-support-owner-wapper input
|
|
6
|
-
.margin-top.managed-account-selector .pf-c-select {
|
|
5
|
+
.get-support-owner-wapper input {
|
|
7
6
|
min-height: 36px;
|
|
8
7
|
}
|
|
9
8
|
|
|
10
|
-
.margin-top.managed-account-selector
|
|
9
|
+
.margin-top.managed-account-selector {
|
|
11
10
|
.pf-m-disabled {
|
|
12
11
|
background-color: var(--pf-v5-global--disabled-color--300) !important;
|
|
13
12
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Case.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseEditView/Case.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAwC,MAAM,OAAO,CAAC;AAE7D,OAAO,EAAS,mBAAmB,EAAiD,MAAM,kBAAkB,CAAC;AAmB7G,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC;CACnC;AAED,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"Case.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseEditView/Case.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAwC,MAAM,OAAO,CAAC;AAE7D,OAAO,EAAS,mBAAmB,EAAiD,MAAM,kBAAkB,CAAC;AAmB7G,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC;CACnC;AAED,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,KAAK,EAAE,MAAM,qBAgPzC"}
|
|
@@ -33,7 +33,7 @@ export default function Case(props) {
|
|
|
33
33
|
const { t } = useTranslation();
|
|
34
34
|
// The `path` lets us build <Route> paths that are
|
|
35
35
|
// relative to the parent route, while the `url` lets
|
|
36
|
-
//us build relative links.
|
|
36
|
+
// us build relative links.
|
|
37
37
|
const { path, url } = useRouteMatch();
|
|
38
38
|
const { caseNumber } = useParams();
|
|
39
39
|
const queryParams = getUrlParsedParams(useLocation().search);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CaseOwnerInfo.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseEditView/CaseOverview/CaseOwnerInfo.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAI5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAqB,MAAM,OAAO,CAAC;AAK1C,UAAU,MAAM;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;CACzD;AAED,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"CaseOwnerInfo.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseEditView/CaseOverview/CaseOwnerInfo.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAI5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAqB,MAAM,OAAO,CAAC;AAK1C,UAAU,MAAM;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;CACzD;AAED,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,KAAK,EAAE,MAAM,qBAiElD"}
|
|
@@ -46,5 +46,5 @@ export default function CaseOwnerInfo(props) {
|
|
|
46
46
|
React.createElement(Trans, null, "Office location")),
|
|
47
47
|
": ",
|
|
48
48
|
props.caseDetailsHydra.data.caseOwner.officeLocation)) },
|
|
49
|
-
React.createElement(QuestionCircleIcon, {
|
|
49
|
+
React.createElement(QuestionCircleIcon, { className: "pf-v6-u-ml-xs icon-size", "aria-label": "Support Level Info" })))))));
|
|
50
50
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CaseType.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseEditView/CaseOverview/CaseType.tsx"],"names":[],"mappings":"AAWA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAG5D,OAAO,KAAoC,MAAM,OAAO,CAAC;AAOzD,UAAU,MAAO,SAAQ,gBAAgB;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,GAAG,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;CACrB;AAOD,iBAAS,QAAQ,CAAC,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"CaseType.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseEditView/CaseOverview/CaseType.tsx"],"names":[],"mappings":"AAWA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAG5D,OAAO,KAAoC,MAAM,OAAO,CAAC;AAOzD,UAAU,MAAO,SAAQ,gBAAgB;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,GAAG,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;CACrB;AAOD,iBAAS,QAAQ,CAAC,KAAK,EAAE,MAAM,qBAqF9B;kBArFQ,QAAQ;;;AAwFjB,eAAe,QAAQ,CAAC"}
|
|
@@ -25,6 +25,7 @@ function CaseType(props) {
|
|
|
25
25
|
const [isCaseTypeInValid, setIsCaseTypeInValid] = useState(false);
|
|
26
26
|
const { isExportingPDF } = useContext(PDFContext);
|
|
27
27
|
const [isOpen, setIsOpen] = useState(false);
|
|
28
|
+
const [selected, setSelected] = useState(props.selectedType);
|
|
28
29
|
const onToggleClick = () => {
|
|
29
30
|
setIsOpen(!isOpen);
|
|
30
31
|
};
|
|
@@ -32,7 +33,7 @@ function CaseType(props) {
|
|
|
32
33
|
React.createElement(Flex, { justifyContent: { default: 'justifyContentSpaceBetween' } },
|
|
33
34
|
React.createElement(FlexItem, null,
|
|
34
35
|
" ",
|
|
35
|
-
|
|
36
|
+
selected || t(`Select a category`)),
|
|
36
37
|
React.createElement(FlexItem, null, props.isFetching ? React.createElement(Spinner, { size: "md" }) : ''))));
|
|
37
38
|
const validateCaseType = (selectedItem) => {
|
|
38
39
|
setIsCaseTypeInValid(isEmpty(selectedItem));
|
|
@@ -45,6 +46,7 @@ function CaseType(props) {
|
|
|
45
46
|
setIsOpen(false);
|
|
46
47
|
yield props.onTypeChange(switchedCaseType);
|
|
47
48
|
setLocalTypeChange(true);
|
|
49
|
+
setSelected(option);
|
|
48
50
|
validateCaseType(option);
|
|
49
51
|
});
|
|
50
52
|
// value changed logic to show a non local type change
|
|
@@ -55,7 +57,7 @@ function CaseType(props) {
|
|
|
55
57
|
React.createElement(Trans, null, "Support type"),
|
|
56
58
|
React.createElement(ValueChangedIcon, { afterLocalChange: afterLocalChange, isLocalChange: localTypeChange, value: props.selectedType, getTooltipContent: getChangedValueTooltip(() => CaseValuesToWatch.type) }),
|
|
57
59
|
React.createElement("span", { className: `form-required ${isExportingPDF ? 'hide-in-pdf' : ''}`, "aria-hidden": true }, "*")),
|
|
58
|
-
React.createElement(Select, { "data-tracking-id": "case-details-type-selector", isOpen: isOpen, selected:
|
|
60
|
+
React.createElement(Select, { "data-tracking-id": "case-details-type-selector", isOpen: isOpen, selected: selected, onSelect: (event, val) => onCaseTypeChange(val), onOpenChange: (isOpen) => setIsOpen(isOpen), toggle: toggle, popperProps: { direction: 'down', enableFlip: false }, shouldFocusFirstItemOnOpen: false, shouldFocusToggleOnSelect: true },
|
|
59
61
|
React.createElement(SelectList, null, (props.allTypes || []).map((option) => (React.createElement(SelectOption, { value: option, key: option }, option)))))));
|
|
60
62
|
}
|
|
61
63
|
CaseType.defaultProps = defaultProps;
|
|
@@ -297,7 +297,7 @@ export default function CaseOverview(props) {
|
|
|
297
297
|
React.createElement("div", { className: "form-wrapper" },
|
|
298
298
|
React.createElement(CaseStatus, { selectedStatus: status, onStatusChange: onStatusChange, isDisabled: !canManageCase || caseOverviewState.allCaseStatuses.isFetching, allStatuses: caseOverviewState.allCaseStatuses.data, isFetching: caseOverviewState.caseStatusUpdating && isCaseUpdating, hasError: caseOverviewState.allCaseStatuses.isError })),
|
|
299
299
|
React.createElement("div", { className: "form-wrapper" },
|
|
300
|
-
React.createElement(CaseType, { selectedType: switchedCaseType, onTypeChange: onTypeChange, isDisabled: !canManageCase || allCaseTypes.isFetching
|
|
300
|
+
React.createElement(CaseType, { selectedType: switchedCaseType, onTypeChange: onTypeChange, isDisabled: !canManageCase || allCaseTypes.isFetching, allTypes: newCaseTypesArray, isFetching: caseOverviewState.caseTypeUpdating && isCaseUpdating, hasError: allCaseTypes.isError })),
|
|
301
301
|
React.createElement("div", { className: "form-wrapper" },
|
|
302
302
|
React.createElement(Severity, { onSeverityChange: onSeverityChange, isDisabled: !canManageCase, isFetching: caseOverviewState.caseSeverityUpdating && isCaseUpdating })))),
|
|
303
303
|
React.createElement(ExpandableSection, { className: "case-details-main", toggleText: t('Case information'), isExpanded: isDetailsExpanded, onToggle: onToggleDetails },
|
|
@@ -4,5 +4,5 @@ import React from 'react';
|
|
|
4
4
|
import { Trans } from 'react-i18next';
|
|
5
5
|
export default function CaseOpenShiftPopover() {
|
|
6
6
|
return (React.createElement(Popover, { "aria-label": "Cluster Id Info", position: PopoverPosition.auto, bodyContent: React.createElement(Trans, null, "Cluster IDs give us the ability to use connected customer tools and services to debug your cluster in conjunction with this support case."), closeBtnAriaLabel: "Close" },
|
|
7
|
-
React.createElement(QuestionCircleIcon, {
|
|
7
|
+
React.createElement(QuestionCircleIcon, { className: "pf-v6-u-ml-xs" })));
|
|
8
8
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProductVersion.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/CaseDetails/ProductVersion.tsx"],"names":[],"mappings":"AAyCA,OAAO,KAAkD,MAAM,OAAO,CAAC;AASvE,UAAU,MAAM;IACZ,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACvC;AAED,iBAAS,eAAe,CAAC,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"ProductVersion.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/CaseDetails/ProductVersion.tsx"],"names":[],"mappings":"AAyCA,OAAO,KAAkD,MAAM,OAAO,CAAC;AASvE,UAAU,MAAM;IACZ,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACvC;AAED,iBAAS,eAAe,CAAC,KAAK,EAAE,MAAM,qBA0WrC;AAED,eAAe,eAAe,CAAC"}
|
|
@@ -32,13 +32,12 @@ function ProductNVersion(props) {
|
|
|
32
32
|
const [isVersionUpdating, setIsVersionUpdating] = useState(false);
|
|
33
33
|
const [isOpen, setIsOpen] = useState(false);
|
|
34
34
|
const textInputRef = useRef();
|
|
35
|
-
const { product, version, caseNumber, contactSSOName, versionsDetails
|
|
35
|
+
const { product, version, caseNumber, contactSSOName, versionsDetails } = useCaseSelector((state) => ({
|
|
36
36
|
product: state.caseDetails.product,
|
|
37
37
|
version: state.caseDetails.version,
|
|
38
38
|
contactSSOName: state.caseDetails.contactSSOName,
|
|
39
39
|
caseNumber: state.caseDetails.caseNumber,
|
|
40
40
|
versionsDetails: state.versionsDetails,
|
|
41
|
-
isCaseUpdating: state.isCaseUpdating,
|
|
42
41
|
}), isEqual);
|
|
43
42
|
const caseDispatch = useCaseDispatch();
|
|
44
43
|
const dispatchToGlobalMetadataReducer = useContext(GlobalMetadataDispatchContext);
|
|
@@ -252,7 +251,6 @@ function ProductNVersion(props) {
|
|
|
252
251
|
React.createElement(Trans, null, "Version")),
|
|
253
252
|
React.createElement(SingleSelectDropdown, { className: "open-case-version", id: "version-dropdown", placeholder: t(`Select a version`), selected: getVersionSelectedDropdownOption, options: getVersionDropdownOptions, isInvalid: checkIfVersionIsInvalid, isDisabled: isVersionUpdating ||
|
|
254
253
|
(allProducts.isFetching && !allProducts.isError) ||
|
|
255
|
-
isEmpty(selectedProductLocal) ||
|
|
256
|
-
isCaseUpdating, onSelect: onVersionChange, isLoading: isVersionUpdating || (isSEProductApiIsDown && versionsDetails.isFetching), dataTrackingId: "case-details-version-selector", isScrollable: true }))))));
|
|
254
|
+
isEmpty(selectedProductLocal), onSelect: onVersionChange, isLoading: isVersionUpdating || (isSEProductApiIsDown && versionsDetails.isFetching), dataTrackingId: "case-details-version-selector", isScrollable: true }))))));
|
|
257
255
|
}
|
|
258
256
|
export default ProductNVersion;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PostComment.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/CaseDiscussion/PostComment.tsx"],"names":[],"mappings":"AA8BA,OAAO,KAAwE,MAAM,OAAO,CAAC;AAQ7F,OAAO,EAAkB,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAsB5F,UAAU,MAAM;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,cAAc,EAAE,WAAW,EAAE,CAAC;CACjC;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"PostComment.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/CaseDiscussion/PostComment.tsx"],"names":[],"mappings":"AA8BA,OAAO,KAAwE,MAAM,OAAO,CAAC;AAQ7F,OAAO,EAAkB,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAsB5F,UAAU,MAAM;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,cAAc,EAAE,WAAW,EAAE,CAAC;CACjC;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,qBA8iBxC"}
|
|
@@ -188,8 +188,7 @@ export function PostComment(props) {
|
|
|
188
188
|
if (commentText) {
|
|
189
189
|
try {
|
|
190
190
|
setIsProcessing(true);
|
|
191
|
-
|
|
192
|
-
yield request({ caseNumber, commentBody: newCommentText, isPublic, contentType: commentType });
|
|
191
|
+
yield request({ caseNumber, commentBody: commentText, isPublic, contentType: commentType });
|
|
193
192
|
checkForCaseStatusToggleOnAttachOrComment(caseDispatch, loggedInUserRights.data.isInternal(), status);
|
|
194
193
|
!isPublic && setIsPublic(true);
|
|
195
194
|
addUserToNotifyList();
|
|
@@ -17,15 +17,13 @@
|
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
.right-node {
|
|
20
|
+
white-space: nowrap;
|
|
20
21
|
overflow: hidden;
|
|
21
22
|
text-overflow: ellipsis;
|
|
22
23
|
width: 100%;
|
|
23
24
|
}
|
|
24
|
-
|
|
25
25
|
.content-date-right-history {
|
|
26
|
-
|
|
27
|
-
-webkit-line-clamp: 2;
|
|
28
|
-
-webkit-box-orient: vertical;
|
|
26
|
+
white-space: nowrap;
|
|
29
27
|
overflow: hidden;
|
|
30
28
|
text-overflow: ellipsis;
|
|
31
29
|
}
|
|
@@ -164,6 +162,7 @@
|
|
|
164
162
|
text-align: right;
|
|
165
163
|
line-height: 30px;
|
|
166
164
|
white-space: nowrap;
|
|
165
|
+
overflow: hidden;
|
|
167
166
|
}
|
|
168
167
|
|
|
169
168
|
.content-date-right-history {
|
|
@@ -320,20 +319,41 @@ ul#case-history-paginated-timeline {
|
|
|
320
319
|
}
|
|
321
320
|
}
|
|
322
321
|
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
322
|
+
.timeline-highlight {
|
|
323
|
+
background-color: #fff3cd;
|
|
324
|
+
padding: 0;
|
|
325
|
+
margin: 0;
|
|
326
|
+
border-radius: 2px;
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
@media screen and (max-width: 768px) {
|
|
330
|
+
.timeline::after {
|
|
331
|
+
left: 20px;
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
.timeline-node {
|
|
335
|
+
flex-direction: column;
|
|
326
336
|
}
|
|
327
337
|
|
|
328
|
-
.
|
|
329
|
-
|
|
338
|
+
.left-node,
|
|
339
|
+
.right-node {
|
|
340
|
+
max-width: 100%;
|
|
341
|
+
padding: 0;
|
|
330
342
|
}
|
|
331
343
|
|
|
332
|
-
.
|
|
333
|
-
|
|
344
|
+
.timeline-avatar,
|
|
345
|
+
.timeline-marker {
|
|
346
|
+
left: 0%;
|
|
347
|
+
transform: translateX(-50%);
|
|
334
348
|
}
|
|
335
349
|
|
|
336
|
-
.
|
|
337
|
-
|
|
350
|
+
.right-node::before {
|
|
351
|
+
left: 20px;
|
|
352
|
+
border-width: 10px 10px 10px 0;
|
|
353
|
+
border-color: transparent white transparent transparent;
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
.contentTimeline {
|
|
357
|
+
margin-left: 40px;
|
|
338
358
|
}
|
|
339
359
|
}
|
|
@@ -29,9 +29,9 @@ export const CaseSummary = (props) => {
|
|
|
29
29
|
const [caseSummaryData, setCaseSummaryData] = useState(getApiResourceObject(null, true));
|
|
30
30
|
const [caseSummaryState, setCaseSummaryState] = useState();
|
|
31
31
|
const [errorMessage, setErrorMessage] = useState('');
|
|
32
|
-
const {
|
|
33
|
-
caseComments: state.caseDetails.comments,
|
|
32
|
+
const { caseLanguage, caseComments } = useCaseSelector((state) => ({
|
|
34
33
|
caseLanguage: state.caseDetails.caseLanguage,
|
|
34
|
+
caseComments: state.caseDetails.comments,
|
|
35
35
|
}), isEqual);
|
|
36
36
|
const { globalMetadataState: { loggedInUserRights }, } = useContext(GlobalMetadataStateContext);
|
|
37
37
|
const isInternal = (_b = (_a = loggedInUserRights === null || loggedInUserRights === void 0 ? void 0 : loggedInUserRights.data) === null || _a === void 0 ? void 0 : _a.isInternal) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
@@ -43,7 +43,7 @@ export const CaseSummary = (props) => {
|
|
|
43
43
|
setIsFeedbackModalOpen(true);
|
|
44
44
|
};
|
|
45
45
|
useEffect(() => {
|
|
46
|
-
if (caseLanguage
|
|
46
|
+
if (caseLanguage !== 'en') {
|
|
47
47
|
setCaseSummaryState(CaseSummaryStates.CASE_LANGUAGE_NOT_SUPPORTED);
|
|
48
48
|
return;
|
|
49
49
|
}
|
|
@@ -25,7 +25,7 @@ export function CaseSummaryErrorMessage(props) {
|
|
|
25
25
|
'The AI is either currently unavailable or is processing case details or try reloading the page.';
|
|
26
26
|
break;
|
|
27
27
|
case 'case_language_not_supported':
|
|
28
|
-
message = `The AI case summary is
|
|
28
|
+
message = `The AI case summary is available in English. We're working on adding more languages soon.`;
|
|
29
29
|
break;
|
|
30
30
|
case 'input_comments_too_large':
|
|
31
31
|
message = `${shared} overall input comments text is too large.`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Description.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/Description.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAsC,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Description.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/Description.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAS3D,UAAU,MAAM;IACZ,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,KAAK,EAAE,MAAM,qBAsKhD"}
|
|
@@ -7,11 +7,13 @@ import isEqual from 'lodash/isEqual';
|
|
|
7
7
|
import React, { useEffect, useRef, useState } from 'react';
|
|
8
8
|
import { Trans, useTranslation } from 'react-i18next';
|
|
9
9
|
import { useCaseDispatch, useCaseSelector } from '../../context/CaseContext';
|
|
10
|
+
import { useAB } from '../../hooks/useAB';
|
|
10
11
|
import { CASE_DETAILS_ISSUE_LIMIT } from '../../reducers/CaseConstNTypes';
|
|
11
12
|
import { getUpdatedDescription } from '../../reducers/CaseHelpers';
|
|
12
13
|
import { setCaseDetails } from '../../reducers/CaseReducer';
|
|
13
14
|
export default function Description(props) {
|
|
14
15
|
const { t } = useTranslation();
|
|
16
|
+
const { isVariationA } = useAB();
|
|
15
17
|
const { issue, environment, periodicityOfIssue, timeFramesAndUrgency, v3ClusterName, version, product, summary } = useCaseSelector((state) => ({
|
|
16
18
|
description: state.caseDetails.description,
|
|
17
19
|
issue: state.caseDetails.issue,
|
|
@@ -78,7 +80,7 @@ export default function Description(props) {
|
|
|
78
80
|
isKT1Required && (React.createElement("span", { className: "form-required", "aria-hidden": true }, "*")),
|
|
79
81
|
React.createElement(Popover, { isVisible: isOpen, shouldClose: handleClose, headerContent: headerPopoverContent, bodyContent: PopoverContent },
|
|
80
82
|
React.createElement(OutlinedQuestionCircleIcon, { className: "pf-v6-u-ml-xs icon-size", onClick: handleToggle }))))), labelProps: { htmlFor: 'get-support-ktQ1-issue' }, content: issue, allowInlineEdit: !!props.inlineEditable, hideSaveCancel: !!props.hideSaveCancel, initialIsEditing: isEmpty(issue), usePreformattedTag: true, saveOnBlur: true },
|
|
81
|
-
React.createElement(TextArea, { id: "get-support-ktQ1-issue", name: "get-support-ktQ1-issue", className: `description-textarea ${isEmpty(version) || isEmpty(summary) || isEmpty(product) ? 'kt1-disabled' : ''}`, "aria-invalid": (issue === null || issue === void 0 ? void 0 : issue.length) > CASE_DETAILS_ISSUE_LIMIT ? 'true' : 'false', "aria-required": isKT1Required, isRequired: isKT1Required, value: issue, disabled: isEmpty(version) || isEmpty(summary) || isEmpty(product), onChange: (e, value) => onKTQ1IssueChange(value, e), "data-tracking-id": "get-support-ktQ1-issue", placeholder: t('i18nKeyPlaceHolderDetail', `The more detail that you include, the easier it is for us to help you. \nExample: \nI'm unable to start the SSHD service and am receiving the error message "Bad yes/no \nargument for ShowPatchLevel parameter"`), resizeOrientation: "vertical", validated: props.isSummarizeInvalid ? 'error' : 'default', rows: isLgScreenHeight ?
|
|
83
|
+
React.createElement(TextArea, { id: "get-support-ktQ1-issue", name: "get-support-ktQ1-issue", className: `description-textarea ${isEmpty(version) || isEmpty(summary) || isEmpty(product) ? 'kt1-disabled' : ''}`, "aria-invalid": (issue === null || issue === void 0 ? void 0 : issue.length) > CASE_DETAILS_ISSUE_LIMIT ? 'true' : 'false', "aria-required": isKT1Required, isRequired: isKT1Required, value: issue, disabled: isEmpty(version) || isEmpty(summary) || isEmpty(product), onChange: (e, value) => onKTQ1IssueChange(value, e), "data-tracking-id": "get-support-ktQ1-issue", placeholder: t('i18nKeyPlaceHolderDetail', `The more detail that you include, the easier it is for us to help you. \nExample: \nI'm unable to start the SSHD service and am receiving the error message "Bad yes/no \nargument for ShowPatchLevel parameter"`), resizeOrientation: "vertical", validated: props.isSummarizeInvalid ? 'error' : 'default', rows: isVariationA ? (isLgScreenHeight ? 20 : 12) : isLgScreenHeight ? 15 : 10, ref: textAreaRef, onClick: handleTextAreaClick }),
|
|
82
84
|
React.createElement("p", { className: "form-instructions pf-v6-u-danger-color-100", "data-tracking-id": "large-20k-warning-ktQ1-environment" }, `${(issue === null || issue === void 0 ? void 0 : issue.length) > CASE_DETAILS_ISSUE_LIMIT
|
|
83
85
|
? `This description exceeds ${CASE_DETAILS_ISSUE_LIMIT} characters. Try shortening it.`
|
|
84
86
|
: ''}`)));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Severity.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/Severity.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AAMvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAa5D,OAAO,KAA0C,MAAM,OAAO,CAAC;AAW/D,UAAU,MAAO,SAAQ,gBAAgB;IACrC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC;IAChE,oBAAoB,EAAE,OAAO,CAAC;CACjC;AASD,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,GAAG,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;CACxD;AAED,iBAAS,QAAQ,CAAC,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"Severity.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/Severity.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AAMvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAa5D,OAAO,KAA0C,MAAM,OAAO,CAAC;AAW/D,UAAU,MAAO,SAAQ,gBAAgB;IACrC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC;IAChE,oBAAoB,EAAE,OAAO,CAAC;CACjC;AASD,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,GAAG,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;CACxD;AAED,iBAAS,QAAQ,CAAC,KAAK,EAAE,MAAM,qBAyQ9B;kBAzQQ,QAAQ;;;AA2QjB,eAAe,QAAQ,CAAC"}
|
|
@@ -160,7 +160,7 @@ function Severity(props) {
|
|
|
160
160
|
' ',
|
|
161
161
|
React.createElement("a", { href: "/support/policy/severity", target: "_blank" },
|
|
162
162
|
React.createElement(Trans, null, "Red Hat Support Severity Level Definitions"))), closeBtnAriaLabel: "Close" },
|
|
163
|
-
React.createElement(QuestionCircleIcon, {
|
|
163
|
+
React.createElement(QuestionCircleIcon, { className: "pf-v6-u-ml-xs icon-size cursor-pointer pf-v6-u-text-color-status-custom", "aria-label": t(`Support Severity Level info`) }))),
|
|
164
164
|
"\u00A0",
|
|
165
165
|
filteredSeverities.filter((s) => s.disabled).length !== 0 && (React.createElement(Tooltip, { position: TooltipPosition.top, content: React.createElement(Trans, null, "Only the enabled severity levels are supported for selected product and version.") },
|
|
166
166
|
React.createElement(Icon, { size: "sm" },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SupportLevel.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/SupportLevel.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAI5D,OAAO,KAA0C,MAAM,OAAO,CAAC;AAM/D,UAAU,MAAO,SAAQ,gBAAgB;CAAG;AAO5C,iBAAS,YAAY,CAAC,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"SupportLevel.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/SupportLevel.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAI5D,OAAO,KAA0C,MAAM,OAAO,CAAC;AAM/D,UAAU,MAAO,SAAQ,gBAAgB;CAAG;AAO5C,iBAAS,YAAY,CAAC,KAAK,EAAE,MAAM,qBAmJlC;kBAnJQ,YAAY;;;AAqJrB,eAAe,YAAY,CAAC"}
|
|
@@ -97,7 +97,7 @@ function SupportLevel(props) {
|
|
|
97
97
|
"Learn more about our",
|
|
98
98
|
' ',
|
|
99
99
|
React.createElement("a", { href: "/support/offerings/production/sla", target: "_blank" }, "production support service level agreement"))), closeBtnAriaLabel: "Close" },
|
|
100
|
-
React.createElement(QuestionCircleIcon, {
|
|
100
|
+
React.createElement(QuestionCircleIcon, { className: "pf-v6-u-ml-xs icon-size cursor-pointer pf-v6-u-text-color-status-custom", "aria-label": "Support Level Info" })),
|
|
101
101
|
React.createElement(SingleSelectDropdown, { ariaLabel: t('Select Support Level'), onSelect: onEntitlementChange, selected: getSelectedOption(), options: getDropdownOptions(), isDisabled: ownersEntitlements.isError || isEmpty(ownersEntitlements.data), isInvalid: isSupportLevelInValid, dataTrackingId: "get-support-supportLevel", placeholder: t('Select Support Level') }),
|
|
102
102
|
isEmpty(ownersEntitlements.data) && (React.createElement("p", { className: "form-instructions" }, ownersEntitlements.isError ? t('Error loading support levels') : t('No active subscriptions')))));
|
|
103
103
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenshiftDropdownV4.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseManagement/OpenshiftDropdownV4.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAgB5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAI5D,OAAO,KAA2D,MAAM,OAAO,CAAC;AAOhF,UAAU,MAAO,SAAQ,gBAAgB;IACrC,uBAAuB,EAAE,MAAM,CAAC;IAChC,sBAAsB,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,oBAAoB,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACzF,kBAAkB,EAAE,OAAO,CAAC;IAC5B,iCAAiC,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IAChD,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,uBAAuB,CAAC,EAAE,CAAC,GAAG,KAAA,KAAK,IAAI,CAAC;CAC3C;AAsBD,iBAAS,mBAAmB,CAAC,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"OpenshiftDropdownV4.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseManagement/OpenshiftDropdownV4.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAgB5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAI5D,OAAO,KAA2D,MAAM,OAAO,CAAC;AAOhF,UAAU,MAAO,SAAQ,gBAAgB;IACrC,uBAAuB,EAAE,MAAM,CAAC;IAChC,sBAAsB,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,oBAAoB,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACzF,kBAAkB,EAAE,OAAO,CAAC;IAC5B,iCAAiC,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IAChD,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,uBAAuB,CAAC,EAAE,CAAC,GAAG,KAAA,KAAK,IAAI,CAAC;CAC3C;AAsBD,iBAAS,mBAAmB,CAAC,KAAK,EAAE,MAAM,qBAudzC;AAED,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
|
|
@@ -71,18 +71,12 @@ function OpenshiftDropdownV4(props) {
|
|
|
71
71
|
});
|
|
72
72
|
const onToggle = () => setIsOpen(!isOpen);
|
|
73
73
|
const onViewMoreClick = () => __awaiter(this, void 0, void 0, function* () {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
setClustersSelectOptions(getClusterOptions(clusterResponse));
|
|
81
|
-
return clusterResponse;
|
|
82
|
-
});
|
|
83
|
-
});
|
|
84
|
-
return prev;
|
|
85
|
-
});
|
|
74
|
+
const page = Math.floor(clustersRawResponse.length / PER_PAGE) + 1;
|
|
75
|
+
const fetchedClusters = yield fetchAccountClusters(inputVal, page);
|
|
76
|
+
const clusterResponse = [...clustersRawResponse, ...((fetchedClusters === null || fetchedClusters === void 0 ? void 0 : fetchedClusters.items) || [])];
|
|
77
|
+
setClustersRawResponse(clusterResponse);
|
|
78
|
+
setTotalResultsNo(fetchedClusters.total);
|
|
79
|
+
setClustersSelectOptions(getClusterOptions(clusterResponse));
|
|
86
80
|
});
|
|
87
81
|
const onSelect = (event, selectedCluster) => __awaiter(this, void 0, void 0, function* () {
|
|
88
82
|
if (selectedCluster.type === 'checkbox') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenCase.d.ts","sourceRoot":"","sources":["../../../../src/components/OpenCase/OpenCase.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"OpenCase.d.ts","sourceRoot":"","sources":["../../../../src/components/OpenCase/OpenCase.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAMlE,MAAM,WAAW,MAAM;IACnB,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACjD,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;IACzE,gCAAgC,EAAE,OAAO,CAAC;IAC1C,aAAa,EAAE,KAAK,CAAC,gBAAgB,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;CAChE;AAED,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,KAAK,EAAE,MAAM,qBA4B7C"}
|
|
@@ -1,22 +1,16 @@
|
|
|
1
1
|
import { ability, CaseListFields, resourceActions, resources } from '@rh-support/user-permissions';
|
|
2
|
-
import isEqual from 'lodash/isEqual';
|
|
3
2
|
import React from 'react';
|
|
4
|
-
import { useCaseSelector } from '../../context/CaseContext';
|
|
5
3
|
import { AccountSelector } from '../AccountInfo/AccountSelector';
|
|
6
4
|
import { OwnerSelector } from '../AccountInfo/OwnerSelector';
|
|
7
5
|
import ProductSelector from '../ProductSelector/ProductSelector';
|
|
8
6
|
import SupportTypeSelectorPage from './SupportTypeSelectorPage';
|
|
9
7
|
export default function OpenCase(props) {
|
|
10
8
|
const canChangeAccountInfo = ability.can(resourceActions.PATCH, resources.CASE_CREATE, CaseListFields.ACCOUNT_AND_OWNER);
|
|
11
|
-
const { ABTestVariation } = useCaseSelector((state) => ({
|
|
12
|
-
ABTestVariation: state.ABTestVariation,
|
|
13
|
-
}), isEqual);
|
|
14
|
-
const isATestvariation = ABTestVariation === 'A';
|
|
15
9
|
return (React.createElement("form", null,
|
|
16
10
|
canChangeAccountInfo && (React.createElement(React.Fragment, null,
|
|
17
11
|
React.createElement(AccountSelector, { "data-tracking-id": "get-support-account-selector" }),
|
|
18
12
|
React.createElement(OwnerSelector, { "data-tracking-id": "get-support-owner-selector" }))),
|
|
19
|
-
|
|
20
|
-
React.createElement(ProductSelector, { routeProps: props.routeProps, userSeenRecommendations: props.userSeenRecommendations, userClickedNextonRecommendations: props.userClickedNextonRecommendations, resultsRowRef: props.resultsRowRef, isOnGetSupportPage: true }))
|
|
13
|
+
React.createElement("div", { className: "form-group" },
|
|
14
|
+
React.createElement(ProductSelector, { routeProps: props.routeProps, userSeenRecommendations: props.userSeenRecommendations, userClickedNextonRecommendations: props.userClickedNextonRecommendations, resultsRowRef: props.resultsRowRef, isOnGetSupportPage: true })),
|
|
21
15
|
React.createElement(SupportTypeSelectorPage, null)));
|
|
22
16
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AllProductsSelector.d.ts","sourceRoot":"","sources":["../../../../src/components/ProductSelector/AllProductsSelector.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAsD,MAAM,OAAO,CAAC;AAE3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAMvD,OAAO,EAAuC,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAMvG,UAAU,MAAM;IACZ,qBAAqB,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACjD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAClC;AAQD;;;;;;;GAOG;AACH,QAAA,MAAM,mBAAmB,
|
|
1
|
+
{"version":3,"file":"AllProductsSelector.d.ts","sourceRoot":"","sources":["../../../../src/components/ProductSelector/AllProductsSelector.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAsD,MAAM,OAAO,CAAC;AAE3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAMvD,OAAO,EAAuC,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAMvG,UAAU,MAAM;IACZ,qBAAqB,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACjD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAClC;AAQD;;;;;;;GAOG;AACH,QAAA,MAAM,mBAAmB,4EAsKvB,CAAC;AAGH,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
|
|
@@ -33,11 +33,10 @@ const AllProductsSelector = forwardRef((props, ref) => {
|
|
|
33
33
|
var _a, _b;
|
|
34
34
|
const { globalMetadataState: { allProducts, loggedInUserRights }, } = useContext(GlobalMetadataStateContext);
|
|
35
35
|
const caseDispatch = useCaseDispatch();
|
|
36
|
-
const { product, version, contactSSOName
|
|
36
|
+
const { product, version, contactSSOName } = useCaseSelector((state) => ({
|
|
37
37
|
product: state.caseDetails.product,
|
|
38
38
|
version: state.caseDetails.version,
|
|
39
39
|
contactSSOName: state.caseDetails.contactSSOName,
|
|
40
|
-
ABTestVariation: state.ABTestVariation,
|
|
41
40
|
}), isEqual);
|
|
42
41
|
const { topContentState: { topContent }, } = useContext(TCStateContext);
|
|
43
42
|
const { routeState: { activeSection, isCaseCreate }, } = useContext(RouteContext);
|
|
@@ -80,25 +79,14 @@ const AllProductsSelector = forwardRef((props, ref) => {
|
|
|
80
79
|
RouteUtils.updateQueryParams(props.routeProps, newParams);
|
|
81
80
|
}
|
|
82
81
|
const entitledProducts = filter(allProducts.data.productsResult, (p) => p.isEntitledProduct);
|
|
83
|
-
const isATestvariation = ABTestVariation === 'A';
|
|
84
|
-
const isBTestvariation = ABTestVariation === 'B' || isEmpty(ABTestVariation);
|
|
85
|
-
// Determine whether to render the ProductVersionDropdownSelector
|
|
86
82
|
const renderProductVersionDropdownSelector = (activeSection === (isCaseCreate ? AppRouteSections.SUMMARIZE : AppRouteSections.TROUBLESHOOT) &&
|
|
87
83
|
!props.caseCreateExperience) ||
|
|
88
84
|
activeSection === AppRouteSections.GET_SUPPORT ||
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
activeSection === AppRouteSections.REVIEW ||
|
|
95
|
-
activeSection === AppRouteSections.SUBMIT_CASE)) ||
|
|
96
|
-
(isATestvariation &&
|
|
97
|
-
(activeSection === (isCaseCreate ? AppRouteSections.SUMMARIZE : AppRouteSections.TROUBLESHOOT) ||
|
|
98
|
-
activeSection === AppRouteSections.REVIEW ||
|
|
99
|
-
activeSection === AppRouteSections.SUBMIT_CASE)) ||
|
|
100
|
-
(!props.caseCreateExperience &&
|
|
101
|
-
activeSection === (isCaseCreate ? AppRouteSections.SUMMARIZE : AppRouteSections.TROUBLESHOOT));
|
|
85
|
+
props.isOnGetSupportPage ||
|
|
86
|
+
props.isOnReviewPage;
|
|
87
|
+
const renderOpenCaseIssue = activeSection === (isCaseCreate ? AppRouteSections.SUMMARIZE : AppRouteSections.TROUBLESHOOT) ||
|
|
88
|
+
activeSection === AppRouteSections.REVIEW ||
|
|
89
|
+
activeSection === AppRouteSections.SUBMIT_CASE;
|
|
102
90
|
return (React.createElement(React.Fragment, null,
|
|
103
91
|
renderProductVersionDropdownSelector && (React.createElement("div", { className: "form-group product-selector-wrapper" },
|
|
104
92
|
React.createElement("div", { className: "all-product-selector-dropdown" },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProductSelector.d.ts","sourceRoot":"","sources":["../../../../src/components/ProductSelector/ProductSelector.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAwC,MAAM,OAAO,CAAC;AAE7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"ProductSelector.d.ts","sourceRoot":"","sources":["../../../../src/components/ProductSelector/ProductSelector.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAwC,MAAM,OAAO,CAAC;AAE7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAOvD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAKlE,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;IACzE,gCAAgC,CAAC,EAAE,OAAO,CAAC;IAC3C,aAAa,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC9D,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,KAAK,EAAE,MAAM,qBAqGpD"}
|
|
@@ -8,13 +8,12 @@ import React, { useContext, useEffect, useRef } from 'react';
|
|
|
8
8
|
import { Trans, useTranslation } from 'react-i18next';
|
|
9
9
|
import { useCaseDispatch, useCaseSelector } from '../../context/CaseContext';
|
|
10
10
|
import { RouteContext } from '../../context/RouteContext';
|
|
11
|
+
import { useAB } from '../../hooks/useAB';
|
|
11
12
|
import { useFetchCVEData } from '../../hooks/useFetchCVEData';
|
|
12
13
|
import { setCaseState } from '../../reducers/CaseReducer';
|
|
13
14
|
import { CveModal } from '../Cve/CveModal';
|
|
14
|
-
import { EARuleWidget } from '../Recommendations/EARules/EARuleWidget';
|
|
15
15
|
import Recommendations from '../Recommendations/Recommendations';
|
|
16
16
|
import { AllProductsSelector } from './AllProductsSelector';
|
|
17
|
-
import { ProductSelectorLoader } from './ProductSelectorLoader';
|
|
18
17
|
/**
|
|
19
18
|
* Responsible for:
|
|
20
19
|
* # Setting case state with product version from url.
|
|
@@ -26,18 +25,16 @@ import { ProductSelectorLoader } from './ProductSelectorLoader';
|
|
|
26
25
|
export default function ProductSelector(props) {
|
|
27
26
|
const { cveRecommendation } = useFetchCVEData();
|
|
28
27
|
const { t } = useTranslation();
|
|
28
|
+
const { isVariationA } = useAB();
|
|
29
29
|
const { globalMetadataState: { allProducts, pcmConfig }, } = useContext(GlobalMetadataStateContext);
|
|
30
|
-
const { product, version
|
|
30
|
+
const { product, version } = useCaseSelector((state) => ({
|
|
31
31
|
product: state.caseDetails.product,
|
|
32
32
|
version: state.caseDetails.version,
|
|
33
|
-
ABTestVariation: state.ABTestVariation,
|
|
34
33
|
}), isEqual);
|
|
35
34
|
const { routeState: { isCaseCreate }, } = useContext(RouteContext);
|
|
36
35
|
const caseDispatch = useCaseDispatch();
|
|
37
36
|
const cveModalEnabledConfig = getConfigField(pcmConfig.data, 'isCVEModalEnabled', PCM_CONFIG_FIELD_TYPE.STRING);
|
|
38
37
|
const isCVEModalEnabled = cveModalEnabledConfig === '1';
|
|
39
|
-
const isATestvariation = ABTestVariation === 'A';
|
|
40
|
-
const isBTestvariation = ABTestVariation === 'B' || isEmpty(ABTestVariation);
|
|
41
38
|
useEffect(() => {
|
|
42
39
|
if (!isCVEModalEnabled) {
|
|
43
40
|
setCaseState(caseDispatch, {
|
|
@@ -56,11 +53,8 @@ export default function ProductSelector(props) {
|
|
|
56
53
|
(cveRecommendation === null || cveRecommendation === void 0 ? void 0 : cveRecommendation.length) !== 0 && isCVEModalEnabled && React.createElement(CveModal, null),
|
|
57
54
|
React.createElement(AllProductsSelector, { routeProps: props.routeProps, checkEntitledProduct: isCaseCreate ? true : false, ref: productSelectorRef, isOnSummaryPage: true, isOnGetSupportPage: props === null || props === void 0 ? void 0 : props.isOnGetSupportPage, caseCreateExperience: props.caseCreateExperience })));
|
|
58
55
|
return (React.createElement(React.Fragment, null,
|
|
59
|
-
isBTestvariation && allProducts.isFetching && React.createElement(ProductSelectorLoader, null),
|
|
60
56
|
React.createElement(AlertMessage, { variant: AlertType.DANGER, className: "pf-v6-u-mt-lg", title: t('There was an error loading products.'), show: allProducts.isError }),
|
|
61
|
-
|
|
62
|
-
? !allProducts.isFetching && !allProducts.isError && rederProductSelect
|
|
63
|
-
: isATestvariation && rederProductSelect,
|
|
57
|
+
rederProductSelect,
|
|
64
58
|
product === 'Subscription Watch' && (React.createElement(Alert, { isInline: true, variant: AlertVariant.warning, title: React.createElement(Trans, null,
|
|
65
59
|
' ',
|
|
66
60
|
"If you're having a subscription issue that doesn't relate to",
|
|
@@ -71,8 +65,7 @@ export default function ProductSelector(props) {
|
|
|
71
65
|
React.createElement("a", { href: "/support/contact", "data-tracking-id": "contact-customer-service" }, "customer service"),
|
|
72
66
|
' ',
|
|
73
67
|
"for help.") })),
|
|
74
|
-
|
|
75
|
-
!(props === null || props === void 0 ? void 0 : props.isOnGetSupportPage) && (React.createElement("div", { className: "suggestions-result-section" },
|
|
68
|
+
!isVariationA && !(props === null || props === void 0 ? void 0 : props.isOnGetSupportPage) && (React.createElement("div", { className: "suggestions-result-section" },
|
|
76
69
|
React.createElement(ErrorBoundary, { errorMsgInfo: { message: t('There was an error loading recommendations') } }, !isEmpty(version) && (React.createElement("div", { className: "common-suggestions" },
|
|
77
70
|
React.createElement(Recommendations, { routeProps: props.routeProps, userSeenRecommendations: props.userSeenRecommendations, userClickedNextonRecommendationsValue: props.userClickedNextonRecommendations, resultsRowRef: props.resultsRowRef }))))))));
|
|
78
71
|
}
|
|
@@ -2,8 +2,6 @@ import { IClusterRecommendation } from '@cee-eng/hydrajs/@types/api/pcm/preCaseD
|
|
|
2
2
|
import React from 'react';
|
|
3
3
|
interface IProps {
|
|
4
4
|
clusterRecommendations: IClusterRecommendation[];
|
|
5
|
-
onViewMoreRecommendation?: () => void;
|
|
6
|
-
displayVeiwMoreBtn?: boolean;
|
|
7
5
|
}
|
|
8
6
|
export declare function ClusterRecommendationItems(props: IProps): React.JSX.Element;
|
|
9
7
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClusterRecommendationItems.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/ClusterRecommendationItems.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oDAAoD,CAAC;AAI5F,OAAO,KAAgC,MAAM,OAAO,CAAC;AAYrD,UAAU,MAAM;IACZ,sBAAsB,EAAE,sBAAsB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"ClusterRecommendationItems.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/ClusterRecommendationItems.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oDAAoD,CAAC;AAI5F,OAAO,KAAgC,MAAM,OAAO,CAAC;AAYrD,UAAU,MAAM;IACZ,sBAAsB,EAAE,sBAAsB,EAAE,CAAC;CACpD;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,qBAkFvD"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { pcm } from '@cee-eng/hydrajs';
|
|
2
|
-
import {
|
|
2
|
+
import { Label } from '@patternfly/react-core';
|
|
3
3
|
import ArrowRightIcon from '@patternfly/react-icons/dist/js/icons/arrow-right-icon';
|
|
4
4
|
import isEqual from 'lodash/isEqual';
|
|
5
5
|
import React, { useContext, useEffect } from 'react';
|
|
@@ -29,19 +29,16 @@ export function ClusterRecommendationItems(props) {
|
|
|
29
29
|
createOrUpdateSessionResources(sessionRestoreDispatch, activeSessionId, sessionResourceTracking, SessionResourceSource.CLUSTER_RECOMMENDATION, getRulesToSave('', '', recsWithUrl), JSON.stringify({ product, version, openshiftClusterID }));
|
|
30
30
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
31
31
|
}, [props.clusterRecommendations, activeSessionId]);
|
|
32
|
-
return (React.createElement("pfe-accordion", null,
|
|
33
|
-
|
|
34
|
-
React.createElement("
|
|
35
|
-
|
|
36
|
-
React.createElement("
|
|
37
|
-
React.createElement(
|
|
38
|
-
React.createElement(
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
React.createElement(
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
React.createElement(ArrowRightIcon, { "aria-hidden": "true" }))))))),
|
|
45
|
-
props.displayVeiwMoreBtn && (React.createElement(Button, { className: "pf-v6-u-p-md", variant: "link", onClick: props.onViewMoreRecommendation, "data-tracking-id": "cluster-recs-view-more" },
|
|
46
|
-
React.createElement(Trans, null, "View more recommendations")))));
|
|
32
|
+
return (React.createElement("pfe-accordion", null, props.clusterRecommendations.map((rule, i) => (React.createElement(React.Fragment, null,
|
|
33
|
+
React.createElement("pfe-accordion-header", null,
|
|
34
|
+
React.createElement("h3", null, rule.description)),
|
|
35
|
+
React.createElement("pfe-accordion-panel", null,
|
|
36
|
+
React.createElement("p", null,
|
|
37
|
+
React.createElement(Label, { icon: riskLabels[rule.total_risk].icon, className: riskLabels[rule.total_risk].className },
|
|
38
|
+
React.createElement(Trans, null, riskLabels[rule.total_risk].label))),
|
|
39
|
+
React.createElement("p", null, rule.details || ''),
|
|
40
|
+
React.createElement("a", { onClick: (e) => onResourceClick(e, rule, i), className: "pf-v6-u-font-weight-bold", "data-tracking-id": "cluster-recommendations", href: detailsUrl, target: "_blank", rel: "noopener noreferrer" },
|
|
41
|
+
React.createElement(Trans, null,
|
|
42
|
+
"View details and remediation steps ",
|
|
43
|
+
React.createElement(ArrowRightIcon, { "aria-hidden": "true" })))))))));
|
|
47
44
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClusterRecommendations.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/ClusterRecommendations.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ClusterRecommendations.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/ClusterRecommendations.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAa1C,UAAU,MAAM;IACZ,+BAA+B,CAAC,EAAE,OAAO,CAAC;IAC1C,8BAA8B,CAAC,EAAE,OAAO,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,KAAK,EAAE,MAAM,qBAgE3D"}
|