@rh-support/troubleshoot 2.6.287 → 2.6.295
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.d.ts.map +1 -1
- package/lib/esm/components/AccountInfo/AccountSelector.js +28 -40
- package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/RequestEscalationModal.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/RequestEscalationModal.js +42 -12
- package/lib/esm/components/CaseEditView/Case.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Case.js +7 -5
- package/lib/esm/components/CaseEditView/CaseDetailsAside.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/CaseDetailsAside.js +25 -8
- package/lib/esm/components/CaseEditView/CaseDetailsTabs.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/CaseDetailsTabs.js +14 -10
- package/lib/esm/components/CaseEditView/CaseOverview/index.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/CaseOverview/index.js +24 -18
- package/lib/esm/components/CaseEditView/RequestRemoteSession/NewEssTermsModal.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/RequestRemoteSession/NewEssTermsModal.js +9 -6
- package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreementModal.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreementModal.js +7 -3
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseContactPhoneNumber.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseContactPhoneNumber.js +38 -34
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseDetailsManagement.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseDetailsManagement.js +9 -9
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/ProductVersion.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/ProductVersion.js +19 -59
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/Summary.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDetails/Summary.js +16 -9
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/VerifyCaseStatusModal/VerifyCaseStatusModal.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/VerifyCaseStatusModal/VerifyCaseStatusModal.js +5 -3
- package/lib/esm/components/CaseEditView/Tabs/RMEEscalations/RMEEscalationList.d.ts.map +1 -1
- package/lib/esm/components/CaseEditView/Tabs/RMEEscalations/RMEEscalationList.js +3 -2
- package/lib/esm/components/CaseInformation/CaseInformation.d.ts.map +1 -1
- package/lib/esm/components/CaseInformation/CaseInformation.js +7 -5
- package/lib/esm/components/CaseInformation/ContactPhoneNumber.d.ts.map +1 -1
- package/lib/esm/components/CaseInformation/ContactPhoneNumber.js +37 -24
- package/lib/esm/components/CaseInformation/SupportLevel.d.ts.map +1 -1
- package/lib/esm/components/CaseInformation/SupportLevel.js +32 -55
- package/lib/esm/components/CaseManagement/CaseLanguageSelector.js +2 -2
- package/lib/esm/components/CaseManagement/CaseManagement.d.ts.map +1 -1
- package/lib/esm/components/CaseManagement/CaseManagement.js +4 -9
- package/lib/esm/components/IdeaInformation/IdeaInformation.d.ts.map +1 -1
- package/lib/esm/components/IdeaInformation/IdeaInformation.js +11 -12
- package/lib/esm/components/OpenCase/SupportTypeSelectorPage.d.ts.map +1 -1
- package/lib/esm/components/OpenCase/SupportTypeSelectorPage.js +4 -2
- package/lib/esm/components/ProductSelector/AllProductsSelector.d.ts +0 -1
- package/lib/esm/components/ProductSelector/AllProductsSelector.d.ts.map +1 -1
- package/lib/esm/components/ProductSelector/AllProductsSelector.js +3 -15
- package/lib/esm/components/ProductSelector/NewProductDropdownSelector.d.ts.map +1 -1
- package/lib/esm/components/ProductSelector/NewProductDropdownSelector.js +13 -37
- package/lib/esm/components/ProductSelector/NewProductVersionSelector.d.ts.map +1 -1
- package/lib/esm/components/ProductSelector/NewProductVersionSelector.js +19 -53
- package/lib/esm/components/ProductSelector/ProductSelector.d.ts.map +1 -1
- package/lib/esm/components/ProductSelector/ProductSelector.js +1 -3
- package/lib/esm/components/Review/Review.d.ts.map +1 -1
- package/lib/esm/components/Review/Review.js +16 -18
- package/lib/esm/components/SessionRestore/SessionRestore.d.ts.map +1 -1
- package/lib/esm/components/SessionRestore/SessionRestore.js +3 -1
- package/lib/esm/components/UpdateSeverityModal/UpdateSeverityModal.js +1 -1
- package/lib/esm/components/shared/useIsSectionValid.d.ts.map +1 -1
- package/lib/esm/components/shared/useIsSectionValid.js +50 -64
- package/lib/esm/components/wizardLayout/GlobalTroubleshootEffects.d.ts.map +1 -1
- package/lib/esm/components/wizardLayout/GlobalTroubleshootEffects.js +106 -23
- package/lib/esm/components/wizardLayout/WizardLayout.d.ts.map +1 -1
- package/lib/esm/components/wizardLayout/WizardLayout.js +6 -7
- package/lib/esm/components/wizardLayout/WizardNavigation.d.ts.map +1 -1
- package/lib/esm/components/wizardLayout/WizardNavigation.js +10 -9
- package/lib/esm/graphql/index.d.ts +4 -0
- package/lib/esm/graphql/index.d.ts.map +1 -0
- package/lib/esm/graphql/index.js +3 -0
- package/lib/esm/graphql/mutations/createRMECaseEscalation.d.ts +2 -0
- package/lib/esm/graphql/mutations/createRMECaseEscalation.d.ts.map +1 -0
- package/lib/esm/graphql/mutations/createRMECaseEscalation.js +24 -0
- package/lib/esm/graphql/mutations/index.d.ts +2 -0
- package/lib/esm/graphql/mutations/index.d.ts.map +1 -0
- package/lib/esm/graphql/mutations/index.js +1 -0
- package/lib/esm/graphql/queries/getEscalationDetails.d.ts +2 -0
- package/lib/esm/graphql/queries/getEscalationDetails.d.ts.map +1 -0
- package/lib/esm/graphql/queries/getEscalationDetails.js +24 -0
- package/lib/esm/graphql/queries/getParentId.d.ts +2 -0
- package/lib/esm/graphql/queries/getParentId.d.ts.map +1 -0
- package/lib/esm/graphql/queries/getParentId.js +16 -0
- package/lib/esm/graphql/queries/index.d.ts +3 -0
- package/lib/esm/graphql/queries/index.d.ts.map +1 -0
- package/lib/esm/graphql/queries/index.js +2 -0
- package/lib/esm/graphql/schemas/escalation.d.ts +84 -0
- package/lib/esm/graphql/schemas/escalation.d.ts.map +1 -0
- package/lib/esm/graphql/schemas/escalation.js +1 -0
- package/lib/esm/graphql/schemas/index.d.ts +2 -0
- package/lib/esm/graphql/schemas/index.d.ts.map +1 -0
- package/lib/esm/graphql/schemas/index.js +1 -0
- package/lib/esm/hooks/useResetCaseCreate.d.ts.map +1 -1
- package/lib/esm/hooks/useResetCaseCreate.js +18 -11
- package/lib/esm/reducers/CaseConstNTypes.d.ts +86 -2
- package/lib/esm/reducers/CaseConstNTypes.d.ts.map +1 -1
- package/lib/esm/reducers/CaseConstNTypes.js +5 -0
- package/lib/esm/reducers/CaseDetailsPageReducer.d.ts +3 -1
- package/lib/esm/reducers/CaseDetailsPageReducer.d.ts.map +1 -1
- package/lib/esm/reducers/CaseDetailsPageReducer.js +22 -5
- package/lib/esm/reducers/CaseHelpers.d.ts +2 -1
- package/lib/esm/reducers/CaseHelpers.d.ts.map +1 -1
- package/lib/esm/reducers/CaseHelpers.js +34 -2
- package/lib/esm/reducers/CaseOverviewReducer.d.ts +3 -1
- package/lib/esm/reducers/CaseOverviewReducer.d.ts.map +1 -1
- package/lib/esm/reducers/CaseOverviewReducer.js +7 -5
- package/lib/esm/reducers/CaseReducer.d.ts +27 -8
- package/lib/esm/reducers/CaseReducer.d.ts.map +1 -1
- package/lib/esm/reducers/CaseReducer.js +113 -29
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccountSelector.d.ts","sourceRoot":"","sources":["../../../../src/components/AccountInfo/AccountSelector.tsx"],"names":[],"mappings":"AAAA,OAAO,2BAA2B,CAAC;AAOnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAK5D,OAAO,KAA0C,MAAM,OAAO,CAAC;AAS/D,UAAU,MAAO,SAAQ,gBAAgB;CAAG;AAE5C,eAAO,MAAM,YAAY,EAAE,MAG1B,CAAC;AAEF,iBAAS,eAAe,CAAC,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"AccountSelector.d.ts","sourceRoot":"","sources":["../../../../src/components/AccountInfo/AccountSelector.tsx"],"names":[],"mappings":"AAAA,OAAO,2BAA2B,CAAC;AAOnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAK5D,OAAO,KAA0C,MAAM,OAAO,CAAC;AAS/D,UAAU,MAAO,SAAQ,gBAAgB;CAAG;AAE5C,eAAO,MAAM,YAAY,EAAE,MAG1B,CAAC;AAEF,iBAAS,eAAe,CAAC,KAAK,EAAE,MAAM,qBAmKrC;kBAnKQ,eAAe;;;AAuKxB,OAAO,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -8,7 +8,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
10
|
import './css/accountSelector.css';
|
|
11
|
-
import {
|
|
11
|
+
import { useApolloClient } from '@apollo/client/react';
|
|
12
12
|
import InfoCircleIcon from '@patternfly/react-icons/dist/js/icons/info-circle-icon';
|
|
13
13
|
import { AlertMessage, AlertType } from '@rh-support/components';
|
|
14
14
|
import { AccountSelectorInternal, GlobalMetadataStateContext } from '@rh-support/react-context';
|
|
@@ -30,12 +30,14 @@ export const defaultProps = {
|
|
|
30
30
|
function AccountSelector(props) {
|
|
31
31
|
var _a;
|
|
32
32
|
const [showNotEntitledMessage, setShowNotEntitledMessage] = useState(false);
|
|
33
|
-
const { accountNumber, selectedAccountDetails } = useCaseSelector((state) => ({
|
|
33
|
+
const { accountNumber, selectedAccountDetails, hasInvalidEntitlements } = useCaseSelector((state) => ({
|
|
34
34
|
accountNumber: state.caseDetails.accountNumberRef,
|
|
35
35
|
selectedAccountDetails: state.selectedAccountDetails,
|
|
36
|
+
hasInvalidEntitlements: state.hasInvalidEntitlements,
|
|
36
37
|
}), isEqual);
|
|
37
38
|
const isSelectedAccountSubscriptionAbused = ((_a = selectedAccountDetails === null || selectedAccountDetails === void 0 ? void 0 : selectedAccountDetails.data) === null || _a === void 0 ? void 0 : _a.subscriptionAbuse) || false;
|
|
38
39
|
const caseDispatch = useCaseDispatch();
|
|
40
|
+
const apolloClient = useApolloClient();
|
|
39
41
|
const routeDispatch = useRouteDispatchContext();
|
|
40
42
|
const { globalMetadataState: { bookmarkedGroupAccounts, loggedInUserRights, managedAccounts, loggedInUsersAccount }, } = useContext(GlobalMetadataStateContext);
|
|
41
43
|
const { t } = useTranslation();
|
|
@@ -43,7 +45,7 @@ function AccountSelector(props) {
|
|
|
43
45
|
const ability = useContext(AbilityContext);
|
|
44
46
|
const canAccessManagedAccounts = ability.can(resourceActions.PATCH, resources.CASE_CREATE, CaseListFields.MANAGED_ACCOUNTS);
|
|
45
47
|
const canBookmarkAccounts = ability.can(resourceActions.PATCH, resources.CASE_CREATE, CaseListFields.BOOKMARK_ACCOUNTS);
|
|
46
|
-
const canUseFindMyAccount = loggedInUserRights.data.isAccountDifferentFromLoggedInAccount(accountNumber);
|
|
48
|
+
// const canUseFindMyAccount = loggedInUserRights.data.isAccountDifferentFromLoggedInAccount(accountNumber!);
|
|
47
49
|
// Account Change Handler
|
|
48
50
|
const onAccountChange = (account) => __awaiter(this, void 0, void 0, function* () {
|
|
49
51
|
if (selectedAccountDetails.data.accountNumber === account.accountNumber)
|
|
@@ -52,7 +54,7 @@ function AccountSelector(props) {
|
|
|
52
54
|
clearSelectedAccount(caseDispatch);
|
|
53
55
|
return;
|
|
54
56
|
}
|
|
55
|
-
setCaseAccountNumber(caseDispatch, account.accountNumber, loggedInUserRights.data.isAccountSameAsLoggedInAccount(account.accountNumber), loggedInUsersAccount.data);
|
|
57
|
+
setCaseAccountNumber(caseDispatch, account.accountNumber, loggedInUserRights.data.isAccountSameAsLoggedInAccount(account.accountNumber), loggedInUsersAccount.data, apolloClient);
|
|
56
58
|
});
|
|
57
59
|
const onInternalAccountSelect = (accounts) => {
|
|
58
60
|
if (!isArray(accounts))
|
|
@@ -64,48 +66,36 @@ function AccountSelector(props) {
|
|
|
64
66
|
selection.accountNum &&
|
|
65
67
|
onAccountChange({ accountNumber: selection.accountNum, name: selection.name });
|
|
66
68
|
};
|
|
67
|
-
const onFindMyAccountClick = (event) => {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
};
|
|
69
|
+
// const onFindMyAccountClick = (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {
|
|
70
|
+
// !isEmpty(loggedInUserRights.data) &&
|
|
71
|
+
// onAccountChange({
|
|
72
|
+
// accountNumber: loggedInUserRights.data.getAccountNumber(),
|
|
73
|
+
// name: loggedInUserRights.data.getAccountName(),
|
|
74
|
+
// });
|
|
75
|
+
// };
|
|
74
76
|
const selectedAccount = {
|
|
75
77
|
name: selectedAccountDetails.data.name,
|
|
76
78
|
accountNumber: selectedAccountDetails.data.accountNumber,
|
|
77
79
|
subscriptionAbuse: selectedAccountDetails.data.subscriptionAbuse,
|
|
78
80
|
};
|
|
79
|
-
// When internal user wants to open a case for a customer but customer account doesn't have entitlement, we show an error
|
|
80
81
|
useEffect(() => {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
return;
|
|
87
|
-
}
|
|
82
|
+
if (!loggedInUserRights.data.isInternal() || !selectedAccountDetails.data.accountNumber) {
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
if (selectedAccountDetails.data.accountNumber === loggedInUsersAccount.data.accountNumber) {
|
|
86
|
+
setNoValidEntitlement(routeDispatch, false);
|
|
88
87
|
setShowNotEntitledMessage(false);
|
|
89
|
-
|
|
90
|
-
const res = yield accounts.getAccountEntitlementByInternalUser(selectedAccountDetails.data.accountNumber);
|
|
91
|
-
if (isEmpty(res)) {
|
|
92
|
-
setShowNotEntitledMessage(true);
|
|
93
|
-
setNoValidEntitlement(routeDispatch, true);
|
|
94
|
-
}
|
|
95
|
-
else {
|
|
96
|
-
setShowNotEntitledMessage(false);
|
|
97
|
-
setNoValidEntitlement(routeDispatch, false);
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
catch (e) {
|
|
101
|
-
console.log(e);
|
|
102
|
-
}
|
|
103
|
-
});
|
|
104
|
-
if (loggedInUserRights.data.isInternal() && selectedAccountDetails.data.accountNumber) {
|
|
105
|
-
getAccountEntitlement();
|
|
88
|
+
return;
|
|
106
89
|
}
|
|
90
|
+
setShowNotEntitledMessage(hasInvalidEntitlements);
|
|
91
|
+
setNoValidEntitlement(routeDispatch, hasInvalidEntitlements);
|
|
107
92
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
108
|
-
}, [
|
|
93
|
+
}, [
|
|
94
|
+
selectedAccountDetails.data.accountNumber,
|
|
95
|
+
loggedInUserRights.data,
|
|
96
|
+
loggedInUsersAccount.data,
|
|
97
|
+
hasInvalidEntitlements,
|
|
98
|
+
]);
|
|
109
99
|
if (isEmpty(loggedInUserRights.data))
|
|
110
100
|
return React.createElement(React.Fragment, null);
|
|
111
101
|
return (React.createElement("div", { id: props.id, className: `form-group ${props.className}` },
|
|
@@ -114,9 +104,7 @@ function AccountSelector(props) {
|
|
|
114
104
|
React.createElement("label", { htmlFor: "account-selector" },
|
|
115
105
|
React.createElement(Trans, null, "Account"),
|
|
116
106
|
' ',
|
|
117
|
-
React.createElement("span", { className: "form-required", "aria-hidden": true }, "*")),
|
|
118
|
-
canUseFindMyAccount && (React.createElement("button", { role: "link", className: "btn btn-link btn-app find-my-account pf-v6-u-ml-auto", onClick: onFindMyAccountClick, disabled: selectedAccountDetails.isFetching, "data-tracking-id": "get-support-find-my-account", type: "button" },
|
|
119
|
-
React.createElement(Trans, null, "Find my account")))),
|
|
107
|
+
React.createElement("span", { className: "form-required", "aria-hidden": true }, "*"))),
|
|
120
108
|
React.createElement("div", { className: "account-selector-wrapper" },
|
|
121
109
|
React.createElement(AccountSelectorInternal, { selectedAccounts: [selectedAccount], canBookmarkAccount: canBookmarkAccounts, bookmarkedAccounts: bookmarkedGroupAccounts.data, id: "account-or-bookmark-selector", className: "account-selector", name: "account-or-bookmark-selector", placeholder: t(`Search for an account ${loggedInUserRights.data.isExternal() ? 'or select a bookmark' : ''} `), onSelect: onInternalAccountSelect, disabled: loggedInUserRights.data.isExternal() || selectedAccountDetails.isFetching, isInValid: isSelectedAccountSubscriptionAbused, restrictedOnSubscriptionAbuse: true })),
|
|
122
110
|
canAccessManagedAccounts && !isEmpty(managedAccounts.data) && (React.createElement(ManagedAccountsDropdown, { className: "managed-account-selector pf-v6-u-mt-xl", onManagedAccountChange: onManagedAccountChange, managedAccounts: managedAccounts, selectedAccountNumber: accountNumber, disabled: selectedAccountDetails.isFetching })),
|
package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/RequestEscalationModal.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RequestEscalationModal.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseEditView/ActiveCustomerEscalation/RequestEscalationModal.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RequestEscalationModal.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseEditView/ActiveCustomerEscalation/RequestEscalationModal.tsx"],"names":[],"mappings":"AAkCA,OAAO,KAA8B,MAAM,OAAO,CAAC;AA0BnD,UAAU,MAAM;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;CACvB;AAID,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,qBAmYnD"}
|
|
@@ -7,6 +7,7 @@ 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 { useApolloClient } from '@apollo/client/react';
|
|
10
11
|
import { escalations, publicApi } from '@cee-eng/hydrajs';
|
|
11
12
|
import { Button, Form, FormGroup, FormHelperText, Grid, GridItem, HelperText, HelperTextItem, Modal, ModalBody, ModalFooter, ModalHeader, Popover, TextArea, TextInput, Title, ValidatedOptions, } from '@patternfly/react-core';
|
|
12
13
|
import InfoCircleIcon from '@patternfly/react-icons/dist/js/icons/info-circle-icon';
|
|
@@ -19,14 +20,16 @@ import { useCaseDispatch } from '../../../context/CaseContext';
|
|
|
19
20
|
import { useCaseDetailsPageDispatchContext, useCaseDetailsPageStateContext, } from '../../../context/CaseDetailsPageContext';
|
|
20
21
|
import { useCaseDiscussionTabDispatchContext, useCaseDiscussionTabStateContext, } from '../../../context/CaseDiscussionTabContext';
|
|
21
22
|
import { CustomerGEOs } from '../../../enums/customerGEOs';
|
|
23
|
+
import { CREATE_RME_CASE_ESCALATION, GET_PARENT_ID, } from '../../../graphql';
|
|
22
24
|
import { ESCALATION_SUBJECT_LENGTH_LIMIT } from '../../../reducers/CaseConstNTypes';
|
|
23
25
|
import { fetchCaseEscalations } from '../../../reducers/CaseDetailsPageReducer';
|
|
24
26
|
import { updateDiscussionStateComments } from '../../../reducers/CaseDiscussionTabReducer';
|
|
25
|
-
import { checkForCaseStatusToggleOnAttachOrComment,
|
|
27
|
+
import { checkForCaseStatusToggleOnAttachOrComment, fetchCaseDetailsHydra } from '../../../reducers/CaseReducer';
|
|
26
28
|
const customerGEOKeys = Object.keys(CustomerGEOs);
|
|
27
29
|
export function RequestEscalationModal(props) {
|
|
28
30
|
const { globalMetadataState: { loggedInUser, loggedInUserRights }, } = useGlobalStateContext();
|
|
29
31
|
const { t } = useTranslation();
|
|
32
|
+
const apolloClient = useApolloClient();
|
|
30
33
|
const [categories, setCategories] = useState([]);
|
|
31
34
|
const initialState = {
|
|
32
35
|
subject: '',
|
|
@@ -42,7 +45,7 @@ export function RequestEscalationModal(props) {
|
|
|
42
45
|
// checks if all the fields have values.
|
|
43
46
|
const hasRequiredInfo = () => Object.keys(formState).reduce((accumulator, currentValue) => { var _a; return !accumulator ? accumulator : formState[currentValue].length > 0 && ((_a = formState[currentValue]) === null || _a === void 0 ? void 0 : _a.trim()); }, true);
|
|
44
47
|
const setFormStateValue = (key, value) => setFormState((pre) => (Object.assign(Object.assign({}, pre), { [key]: value })));
|
|
45
|
-
const
|
|
48
|
+
const [isCreatingEscalation, setIsCreatingEscalation] = useState(false);
|
|
46
49
|
const { request: postCommentRequest, isFetching: isPostingComment } = useFetch(publicApi.kase.postComment, {
|
|
47
50
|
propgateErrors: true,
|
|
48
51
|
});
|
|
@@ -62,13 +65,12 @@ export function RequestEscalationModal(props) {
|
|
|
62
65
|
setFormState(Object.assign(Object.assign({}, formState), { rmeCategory: selection.value }));
|
|
63
66
|
};
|
|
64
67
|
const submitEscalationComment = (escalationNum, comment) => __awaiter(this, void 0, void 0, function* () {
|
|
65
|
-
escalationNum &&
|
|
66
|
-
fetchCaseEscalations(caseDetailsPageDispatch, props.caseNumber, loggedInUserRights.data.getAccountNumber(), false);
|
|
68
|
+
escalationNum && fetchCaseEscalations(caseDetailsPageDispatch, props.caseNumber, apolloClient, false);
|
|
67
69
|
yield postCommentRequest({ caseNumber: props.caseNumber, commentBody: comment, contentType: 'markdown' });
|
|
68
70
|
updateDiscussionStateComments(dispatchDiscussion, caseDispatch, props.caseNumber, allDiscussions, sort, caseFeedbacksHydra.data, discussionFiltersListState);
|
|
69
71
|
yield updateCaseRequest(props.caseNumber, { customerEscalation: true });
|
|
70
72
|
checkForCaseStatusToggleOnAttachOrComment(caseDispatch, loggedInUserRights.data.isInternal(), props.caseStatus);
|
|
71
|
-
yield
|
|
73
|
+
yield fetchCaseDetailsHydra(caseDispatch, props.caseNumber, loggedInUserRights.data, loggedInUser.data, apolloClient);
|
|
72
74
|
escalationNum &&
|
|
73
75
|
ToastNotification.addSuccessMessage(t('Your escalation request has been successfully submitted.'));
|
|
74
76
|
});
|
|
@@ -78,7 +80,7 @@ export function RequestEscalationModal(props) {
|
|
|
78
80
|
setFormState(Object.assign(Object.assign({}, formState), { subject }));
|
|
79
81
|
};
|
|
80
82
|
const onCancel = () => {
|
|
81
|
-
if (isPostingComment || isUpdatingCase ||
|
|
83
|
+
if (isPostingComment || isUpdatingCase || isCreatingEscalation)
|
|
82
84
|
return;
|
|
83
85
|
setSubmitSaveButtonIsClicked(false);
|
|
84
86
|
setFormState(initialState);
|
|
@@ -86,11 +88,37 @@ export function RequestEscalationModal(props) {
|
|
|
86
88
|
props.onClose();
|
|
87
89
|
};
|
|
88
90
|
const onSubmit = () => __awaiter(this, void 0, void 0, function* () {
|
|
91
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
89
92
|
setSubmitSaveButtonIsClicked(true);
|
|
90
93
|
if (!hasRequiredInfo() || hasLargeSubject)
|
|
91
94
|
return;
|
|
92
95
|
try {
|
|
93
|
-
|
|
96
|
+
setIsCreatingEscalation(true);
|
|
97
|
+
const { data: parentData } = yield apolloClient.query({
|
|
98
|
+
query: GET_PARENT_ID,
|
|
99
|
+
variables: { where: { CaseNumber: { eq: props.caseNumber } } },
|
|
100
|
+
});
|
|
101
|
+
const parentId = (_f = (_e = (_d = (_c = (_b = (_a = parentData === null || parentData === void 0 ? void 0 : parentData.salesforce_support_uiapi) === null || _a === void 0 ? void 0 : _a.query) === null || _b === void 0 ? void 0 : _b.SalesforceSupportCase) === null || _c === void 0 ? void 0 : _c.edges) === null || _d === void 0 ? void 0 : _d[0]) === null || _e === void 0 ? void 0 : _e.node) === null || _f === void 0 ? void 0 : _f.Id;
|
|
102
|
+
if (!parentId)
|
|
103
|
+
throw new Error('Could not find parent case ID');
|
|
104
|
+
const { data: escalationData } = yield apolloClient.mutate({
|
|
105
|
+
mutation: CREATE_RME_CASE_ESCALATION,
|
|
106
|
+
variables: {
|
|
107
|
+
caseInput: {
|
|
108
|
+
Subject: formState.subject,
|
|
109
|
+
Description: formState.description,
|
|
110
|
+
Status: 'New',
|
|
111
|
+
Origin: 'Portal ACE',
|
|
112
|
+
Priority: props.severity ? `P${props.severity.charAt(0)}` : 'Medium',
|
|
113
|
+
Type: 'RME',
|
|
114
|
+
RecordTypeId: '012Ek00000JUtx5IAD',
|
|
115
|
+
ParentId: parentId,
|
|
116
|
+
EscalationCategory__c: formState.rmeCategory,
|
|
117
|
+
ImpactOnUserOrBusiness__c: formState.businessImpactDescription,
|
|
118
|
+
},
|
|
119
|
+
},
|
|
120
|
+
});
|
|
121
|
+
const createdCaseNumber = (_k = (_j = (_h = (_g = escalationData === null || escalationData === void 0 ? void 0 : escalationData.salesforce_support_uiapi) === null || _g === void 0 ? void 0 : _g.CaseCreate) === null || _h === void 0 ? void 0 : _h.SalesforceSupportRecord) === null || _j === void 0 ? void 0 : _j.CaseNumber) === null || _k === void 0 ? void 0 : _k.value;
|
|
94
122
|
const fullComment = t('### Request Management Escalation:\n\n**Subject**\n{{subject}}\n\n**Category**\n{{rmeCategory}}\n\n**Description**\n{{description}}\n\n**Expectations**\n{{expectations}}\n\n**Business Impact**\n{{businessImpactDescription}}', {
|
|
95
123
|
category: formState.rmeCategory,
|
|
96
124
|
subject: formState.subject,
|
|
@@ -100,7 +128,7 @@ export function RequestEscalationModal(props) {
|
|
|
100
128
|
rmeCategory: formState.rmeCategory,
|
|
101
129
|
});
|
|
102
130
|
try {
|
|
103
|
-
yield submitEscalationComment(
|
|
131
|
+
yield submitEscalationComment(createdCaseNumber, fullComment);
|
|
104
132
|
}
|
|
105
133
|
catch (e) {
|
|
106
134
|
// silently fails, escalation is created but adding comment fails
|
|
@@ -108,9 +136,11 @@ export function RequestEscalationModal(props) {
|
|
|
108
136
|
props.onClose();
|
|
109
137
|
}
|
|
110
138
|
catch (error) {
|
|
111
|
-
//=> handle error
|
|
112
139
|
setCreationError(true);
|
|
113
140
|
}
|
|
141
|
+
finally {
|
|
142
|
+
setIsCreatingEscalation(false);
|
|
143
|
+
}
|
|
114
144
|
});
|
|
115
145
|
const header = (React.createElement(Title, { className: "pf-v6-u-mb-0", id: "custom-header-label", headingLevel: "h1" },
|
|
116
146
|
React.createElement(Trans, null, "Request an escalation"),
|
|
@@ -192,9 +222,9 @@ export function RequestEscalationModal(props) {
|
|
|
192
222
|
: ValidatedOptions.default, placeholder: t('Does your business impact change with this escalation? Please describe how it changed.'), id: "business-impact-input", value: formState.businessImpactDescription, "aria-label": t('Business impact'), resizeOrientation: "vertical" }))))),
|
|
193
223
|
React.createElement(ModalFooter, null,
|
|
194
224
|
React.createElement(Button, { key: "submit", variant: "primary", onClick: onSubmit, "data-tracking-id": "request-rme-submit", isDisabled: submitButtonIsClicked &&
|
|
195
|
-
(isPostingComment || isUpdatingCase ||
|
|
196
|
-
(isPostingComment || isUpdatingCase ||
|
|
225
|
+
(isPostingComment || isUpdatingCase || isCreatingEscalation || !hasRequiredInfo()), "aria-label": t('Submit') },
|
|
226
|
+
(isPostingComment || isUpdatingCase || isCreatingEscalation) && (React.createElement(LoadingIndicator, { key: "loading", isInline: true })),
|
|
197
227
|
' ',
|
|
198
228
|
t('Submit')),
|
|
199
|
-
React.createElement(Button, { key: "cancel", variant: "link", onClick: onCancel, "data-tracking-id": "request-rme-cancel", isDisabled:
|
|
229
|
+
React.createElement(Button, { key: "cancel", variant: "link", onClick: onCancel, "data-tracking-id": "request-rme-cancel", isDisabled: isCreatingEscalation || isPostingComment || isUpdatingCase, "aria-label": t('Cancel') }, t('Cancel')))));
|
|
200
230
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Case.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseEditView/Case.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Case.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseEditView/Case.tsx"],"names":[],"mappings":"AAeA,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,qBAoPzC"}
|
|
@@ -7,8 +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 { useApolloClient } from '@apollo/client/react';
|
|
10
11
|
import { CoverSpinner, ErrorBoundary, OverviewContentLoader, ToastNotification, useDocumentTitle, usePrevious, } from '@rh-support/components';
|
|
11
|
-
import { GlobalMetadataStateContext, HostnameAwarenessModal } from '@rh-support/react-context';
|
|
12
|
+
import { fetchCaseDetails, GlobalMetadataStateContext, HostnameAwarenessModal } from '@rh-support/react-context';
|
|
12
13
|
import { AbilityContext, CaseDetailsFields, resourceActions, resources } from '@rh-support/user-permissions';
|
|
13
14
|
import { getUrlParsedParams, isValidCaseNumber } from '@rh-support/utils';
|
|
14
15
|
import isEmpty from 'lodash/isEmpty';
|
|
@@ -20,7 +21,7 @@ import { useCaseDispatch, useCaseSelector } from '../../context/CaseContext';
|
|
|
20
21
|
import { useCaseDetailsPageDispatchContext } from '../../context/CaseDetailsPageContext';
|
|
21
22
|
import { CaseReducerConstants } from '../../reducers/CaseConstNTypes';
|
|
22
23
|
import { fetchAttachments, fetchCaseEscalations, fetchExternalTrackers, fetchFeedbacks, } from '../../reducers/CaseDetailsPageReducer';
|
|
23
|
-
import {
|
|
24
|
+
import { setCaseAccountNumber } from '../../reducers/CaseReducer';
|
|
24
25
|
import { CaseDetailsAside } from './CaseDetailsAside';
|
|
25
26
|
import { CaseDetailsErrorMessage } from './CaseDetailsErrorMessage';
|
|
26
27
|
import CaseDetailsModals from './CaseDetailsModals';
|
|
@@ -28,8 +29,9 @@ import { CaseDetailsTabs } from './CaseDetailsTabs';
|
|
|
28
29
|
import CaseOverview from './CaseOverview';
|
|
29
30
|
import { PDFContext } from './PDFContainer';
|
|
30
31
|
export default function Case(props) {
|
|
31
|
-
const { globalMetadataState: { loggedInUserRights, loggedInUsersAccount
|
|
32
|
+
const { globalMetadataState: { loggedInUserRights, loggedInUsersAccount }, } = useContext(GlobalMetadataStateContext);
|
|
32
33
|
const caseDetailsPageDispatch = useCaseDetailsPageDispatchContext();
|
|
34
|
+
const apolloClient = useApolloClient();
|
|
33
35
|
const { t } = useTranslation();
|
|
34
36
|
// The `path` lets us build <Route> paths that are
|
|
35
37
|
// relative to the parent route, while the `url` lets
|
|
@@ -107,11 +109,11 @@ export default function Case(props) {
|
|
|
107
109
|
caseDispatch(action);
|
|
108
110
|
}
|
|
109
111
|
};
|
|
110
|
-
yield fetchCaseDetails(safeDispatch,
|
|
112
|
+
yield fetchCaseDetails(safeDispatch, apolloClient, targetCaseNumber, setCaseAccountNumber);
|
|
111
113
|
if (currentCaseRef.current !== targetCaseNumber)
|
|
112
114
|
return;
|
|
113
115
|
if (canSeeRMEs) {
|
|
114
|
-
fetchCaseEscalations((action) => currentCaseRef.current === targetCaseNumber && caseDetailsPageDispatch(action), targetCaseNumber,
|
|
116
|
+
fetchCaseEscalations((action) => currentCaseRef.current === targetCaseNumber && caseDetailsPageDispatch(action), targetCaseNumber, apolloClient);
|
|
115
117
|
}
|
|
116
118
|
if (canSeeAttachments) {
|
|
117
119
|
fetchAttachments((action) => currentCaseRef.current === targetCaseNumber && caseDetailsPageDispatch(action), targetCaseNumber, loggedInUsersAccount.data.secureSupport);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CaseDetailsAside.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseEditView/CaseDetailsAside.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CaseDetailsAside.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseEditView/CaseDetailsAside.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAA2D,MAAM,OAAO,CAAC;AAahF,UAAU,MAAM;IACZ,UAAU,EAAE,MAAM,CAAC;CACtB;AAMD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,qBA2Z7C"}
|
|
@@ -7,6 +7,7 @@ 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 { useQuery } from '@apollo/client/react';
|
|
10
11
|
import { Button, Checkbox, Icon, Popover, PopoverPosition, Switch, Tooltip } from '@patternfly/react-core';
|
|
11
12
|
import InfoCircleIcon from '@patternfly/react-icons/dist/js/icons/info-circle-icon';
|
|
12
13
|
import ListIcon from '@patternfly/react-icons/dist/js/icons/list-icon';
|
|
@@ -25,12 +26,13 @@ import { Link } from 'react-router-dom';
|
|
|
25
26
|
import { useCaseSelector } from '../../context/CaseContext';
|
|
26
27
|
import { useCaseDetailsPageStateContext } from '../../context/CaseDetailsPageContext';
|
|
27
28
|
import { useRecommendationStateContext } from '../../context/RecommendationContext';
|
|
29
|
+
import { GET_ESCALATION_DETAILS, GET_PARENT_ID } from '../../graphql';
|
|
28
30
|
import { ActiveCustomerEscalation } from './ActiveCustomerEscalation';
|
|
29
31
|
import { CaseSolutions } from './CaseSolutions';
|
|
30
32
|
import { PDFContext } from './PDFContainer';
|
|
31
33
|
import { ESSRemoteSession, RemoteSessionAgreement } from './RequestRemoteSession';
|
|
32
34
|
export function CaseDetailsAside(props) {
|
|
33
|
-
var _a, _b;
|
|
35
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
34
36
|
const { t } = useTranslation();
|
|
35
37
|
const { severity, status, isFetchingCaseDetails, isFetchingCaseDetailsError, acceptedRemoteSessionTerms, product, waitingOnCallback, groupNumber, ownersCaseGroups, } = useCaseSelector((state) => ({
|
|
36
38
|
severity: state.caseDetails.severity,
|
|
@@ -48,6 +50,15 @@ export function CaseDetailsAside(props) {
|
|
|
48
50
|
const isCreateRMEVisible = (caseEscalations.data || []).length === 0 || caseEscalations.data.every((item) => item.status === 'Closed');
|
|
49
51
|
const { recommendationState: { isLoadingRecommendations, allDocs }, } = useRecommendationStateContext();
|
|
50
52
|
const { caseNumber } = props;
|
|
53
|
+
const { data: parentData, loading: isLoadingParentId } = useQuery(GET_PARENT_ID, {
|
|
54
|
+
variables: { where: { CaseNumber: { eq: caseNumber } } },
|
|
55
|
+
});
|
|
56
|
+
const parentId = (_f = (_e = (_d = (_c = (_b = (_a = parentData === null || parentData === void 0 ? void 0 : parentData.salesforce_support_uiapi) === null || _a === void 0 ? void 0 : _a.query) === null || _b === void 0 ? void 0 : _b.SalesforceSupportCase) === null || _c === void 0 ? void 0 : _c.edges) === null || _d === void 0 ? void 0 : _d[0]) === null || _e === void 0 ? void 0 : _e.node) === null || _f === void 0 ? void 0 : _f.Id;
|
|
57
|
+
const { loading: isLoadingEscalations } = useQuery(GET_ESCALATION_DETAILS, {
|
|
58
|
+
variables: { where: { ParentId: { eq: parentId } } },
|
|
59
|
+
skip: !parentId,
|
|
60
|
+
});
|
|
61
|
+
const isEscalationsFetching = isLoadingParentId || isLoadingEscalations;
|
|
51
62
|
const canCreateRME = ability.can(resourceActions.CREATE, resources.RME_ESCALATION);
|
|
52
63
|
const canCreateICE = ability.can(resourceActions.CREATE, resources.ICE_ESCALATION);
|
|
53
64
|
const canSeeToggleCustomerView = ability.can(resourceActions.PATCH, resources.CASE_DETAILS, CaseDetailsFields.CASE_DETAILS_TOGGLE_CUSTOMER_VIEW);
|
|
@@ -61,7 +72,8 @@ export function CaseDetailsAside(props) {
|
|
|
61
72
|
const isXLScreen = breakPoint.xl;
|
|
62
73
|
const toggleCustomerViewRef = useRef(null);
|
|
63
74
|
const isFirstMountRef = useRef(true);
|
|
64
|
-
const { globalMetadataState: { navBarRef, viewAsCustomer, loggedInUsersAccount, allProducts }, } = useGlobalStateContext();
|
|
75
|
+
const { globalMetadataState: { navBarRef, viewAsCustomer, loggedInUsersAccount, allProducts, loggedInUserRights }, } = useGlobalStateContext();
|
|
76
|
+
const isInternal = (_g = loggedInUserRights.data) === null || _g === void 0 ? void 0 : _g.isInternal();
|
|
65
77
|
const isSecureSupportAccount = loggedInUsersAccount.data.secureSupport;
|
|
66
78
|
// To check if user has read only access
|
|
67
79
|
const canReadCase = ability.can(resourceActions.READ, resources.CASE_DETAILS);
|
|
@@ -77,9 +89,14 @@ export function CaseDetailsAside(props) {
|
|
|
77
89
|
const [viewAsInternalPref, setViewAsInternalPref] = useState();
|
|
78
90
|
const [isDefaultBoxChecked, setIsDefaultBoxChecked] = useState(true);
|
|
79
91
|
const { isExportingPDF } = useContext(PDFContext);
|
|
92
|
+
// TODO: When casegroups is deployed on SCT stage, update this logic to properly gate on ownersCaseGroups.data
|
|
80
93
|
const isWritePermissionforCase = useMemo(() => {
|
|
81
|
-
|
|
82
|
-
|
|
94
|
+
if (isInternal || groupNumber === '-1')
|
|
95
|
+
return true;
|
|
96
|
+
if (!ownersCaseGroups.data)
|
|
97
|
+
return true;
|
|
98
|
+
return (ownersCaseGroups.data || []).some((group) => group.groupNum === groupNumber);
|
|
99
|
+
}, [groupNumber, ownersCaseGroups.data, isInternal]);
|
|
83
100
|
useEffect(() => {
|
|
84
101
|
const userPreferredCaseView = () => __awaiter(this, void 0, void 0, function* () {
|
|
85
102
|
try {
|
|
@@ -157,7 +174,7 @@ export function CaseDetailsAside(props) {
|
|
|
157
174
|
setIsDefaultBoxChecked(!isDefaultBoxChecked);
|
|
158
175
|
toggleViewAsCustomerFlag(globalMetadataDispatchContext);
|
|
159
176
|
};
|
|
160
|
-
const isSideBarExpanded = (
|
|
177
|
+
const isSideBarExpanded = (_h = caseDetailsAsidePanelRef.current) === null || _h === void 0 ? void 0 : _h.expanded;
|
|
161
178
|
if (isFetchingCaseDetails || isFetchingCaseDetailsError)
|
|
162
179
|
return null;
|
|
163
180
|
const renderCasePrefPopoverText = () => {
|
|
@@ -169,7 +186,7 @@ export function CaseDetailsAside(props) {
|
|
|
169
186
|
}
|
|
170
187
|
};
|
|
171
188
|
// To check if the user is ESS Customer and Product has ESS Support
|
|
172
|
-
const isESSCustomer = isSpecialSupportOfferingEnabled((
|
|
189
|
+
const isESSCustomer = isSpecialSupportOfferingEnabled((_j = allProducts.data) === null || _j === void 0 ? void 0 : _j.productsResult, selectedProduct);
|
|
173
190
|
return (React.createElement("aside", { className: `grid-aside ${isSideBarExpanded ? '' : 'sidebar-collapsed'} ` },
|
|
174
191
|
React.createElement("pfe-collapse-toggle", { "aria-label": `${isSideBarExpanded ? t('Collapse sidebar') : t('Expand sidebar')}`, "aria-controls": "case-details-aside-content", onClick: onToggleAside }, isSideBarExpanded ? (React.createElement("div", { className: `sidebar-header ${isExportingPDF ? 'hide-in-pdf' : ''}` },
|
|
175
192
|
React.createElement("div", { className: "case-detail-collapse-panel" },
|
|
@@ -186,7 +203,7 @@ export function CaseDetailsAside(props) {
|
|
|
186
203
|
!isLoadingRecommendations && allDocs.length > 0 && (React.createElement(Tooltip, { content: t('Top recommendations'), position: "left" },
|
|
187
204
|
React.createElement(Button, { icon: React.createElement(Icon, { className: "pf-v6-u-p-sm", size: "lg" },
|
|
188
205
|
React.createElement(ListIcon, null)), variant: "link", onClick: () => setSectionToScollRef(topSolutionsRef), className: "sidebar-section-toggle-btn", "aria-label": t('Top recommendations') }))),
|
|
189
|
-
!
|
|
206
|
+
!isEscalationsFetching && (canCreateICE || (canCreateRME && isCreateRMEVisible)) && (React.createElement(Tooltip, { content: t('Request an escalation'), position: "left" },
|
|
190
207
|
React.createElement(Button, { icon: React.createElement(Icon, { className: "pf-v6-u-p-sm", size: "lg" },
|
|
191
208
|
React.createElement(TrendUpIcon, null)), variant: "link", className: "sidebar-section-toggle-btn", onClick: () => setSectionToScollRef(createEscalationRef), "aria-label": t('Request an escalation') }))))))),
|
|
192
209
|
React.createElement("pfe-collapse-panel", { className: "sidebar-content", "pfe-animation": "false", id: "case-details-aside-content", ref: caseDetailsAsidePanelRef },
|
|
@@ -213,6 +230,6 @@ export function CaseDetailsAside(props) {
|
|
|
213
230
|
React.createElement(ESSRemoteSession, { waitingOnCallback: waitingOnCallback, remoteSessionTermsAcked: acceptedRemoteSessionTerms, caseNumber: caseNumber, caseSeverity: severity, caseStatus: status, ref: createEscalationRef, readOnly: canReadCase }))),
|
|
214
231
|
!isESSCustomer && (React.createElement(ErrorBoundary, { errorMsgInfo: { message: t('There was an error loading remote session agreement section') } },
|
|
215
232
|
React.createElement(RemoteSessionAgreement, { caseNumber: caseNumber, caseSeverity: severity, caseStatus: status, ref: createEscalationRef, waitingOnCallback: waitingOnCallback, acceptedRemoteSessionTerms: acceptedRemoteSessionTerms && waitingOnCallback, readOnly: canReadCase }))),
|
|
216
|
-
!
|
|
233
|
+
!isEscalationsFetching && isWritePermissionforCase && (React.createElement(ErrorBoundary, { errorMsgInfo: { message: t('There was an error loading customer escalation section') } },
|
|
217
234
|
React.createElement(ActiveCustomerEscalation, { caseNumber: caseNumber, caseSeverity: severity, caseStatus: status, ref: createEscalationRef })))))));
|
|
218
235
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CaseDetailsTabs.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseEditView/CaseDetailsTabs.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAiD,MAAM,OAAO,CAAC;AAEtE,OAAO,EAAE,mBAAmB,EAAa,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"CaseDetailsTabs.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseEditView/CaseDetailsTabs.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAiD,MAAM,OAAO,CAAC;AAEtE,OAAO,EAAE,mBAAmB,EAAa,MAAM,kBAAkB,CAAC;AA2BlE,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,qBAqS5C"}
|
|
@@ -17,7 +17,10 @@ import CaseDetailsManagement from './Tabs/CaseDetails/CaseDetailsManagement';
|
|
|
17
17
|
import CaseHistory from './Tabs/CaseHistory/CaseHistory';
|
|
18
18
|
import { CaseSummary } from './Tabs/CaseSummary/CaseSummary';
|
|
19
19
|
const RelatedTasks = React.lazy(() => import(/* webpackChunkName: 'CaseBugzilla' */ './Tabs/RelatedTasks/RelatedTasks'));
|
|
20
|
-
|
|
20
|
+
// TODO: Re-enable Action Plan tab when ready
|
|
21
|
+
// const CaseActionPlan = React.lazy(
|
|
22
|
+
// () => import(/* webpackChunkName: 'CaseActionPlan' */ './Tabs/CaseActionPlan/CaseActionPlan')
|
|
23
|
+
// );
|
|
21
24
|
const CasePrivateNotes = React.lazy(() => import(/* webpackChunkName: 'CasePrivateNotes' */ './Tabs/CasePrivateNotes/CasePrivateNotes'));
|
|
22
25
|
const CaseDiscussion = React.lazy(() => import(/* webpackChunkName: 'CaseDiscussion' */ './Tabs/CaseDiscussion/CaseDiscussion'));
|
|
23
26
|
const RMEEscalationList = React.lazy(() => import(/* webpackChunkName: 'RMEEscalationList' */ './Tabs/RMEEscalations/RMEEscalationList'));
|
|
@@ -49,7 +52,7 @@ export function CaseDetailsTabs(props) {
|
|
|
49
52
|
// const bugZillaTabRef: React.MutableRefObject<HTMLDivElement> = useRef(null);
|
|
50
53
|
const managementTabRef = useRef(null);
|
|
51
54
|
const privateNotesTabRef = useRef(null);
|
|
52
|
-
const actionPlanTabRef = useRef(null);
|
|
55
|
+
// const actionPlanTabRef: React.MutableRefObject<HTMLDivElement> = useRef(null);
|
|
53
56
|
const escalationTabRef = useRef(null);
|
|
54
57
|
const relatedTasksRef = useRef(null);
|
|
55
58
|
const caseHistoryTabRef = useRef(null);
|
|
@@ -86,14 +89,15 @@ export function CaseDetailsTabs(props) {
|
|
|
86
89
|
title: CaseDetailsTabsEnum.RELATED_TASKS,
|
|
87
90
|
component: React.createElement(RelatedTasks, null),
|
|
88
91
|
});
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
}
|
|
92
|
+
// TODO: Re-enable Action Plan tab when ready
|
|
93
|
+
// tabsToRender.push({
|
|
94
|
+
// 'data-tracking-id': 'case-details-actionplan-tab',
|
|
95
|
+
// key: 'action plan',
|
|
96
|
+
// ref: actionPlanTabRef,
|
|
97
|
+
// title: CaseDetailsTabsEnum.ACTION_PLAN,
|
|
98
|
+
// routePath: 'plan',
|
|
99
|
+
// component: <CaseActionPlan caseNumber={caseNumber} />,
|
|
100
|
+
// });
|
|
97
101
|
canSeePrivateNotes &&
|
|
98
102
|
tabsToRender.push({
|
|
99
103
|
'data-tracking-id': 'case-details-pvtnotes-tab',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseEditView/CaseOverview/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseEditView/CaseOverview/index.tsx"],"names":[],"mappings":"AAiCA,OAAO,KAAkD,MAAM,OAAO,CAAC;AA2BvE,UAAU,MAAM;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,KAAK,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;CACnD;AAED,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,KAAK,EAAE,MAAM,qBAkgBjD"}
|