@rh-support/troubleshoot 2.6.271 → 2.6.273

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/lib/esm/components/AccountInfo/AccountSelector.d.ts.map +1 -1
  2. package/lib/esm/components/AccountInfo/AccountSelector.js +28 -40
  3. package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/RequestEscalationModal.d.ts.map +1 -1
  4. package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/RequestEscalationModal.js +3 -1
  5. package/lib/esm/components/CaseEditView/Case.d.ts.map +1 -1
  6. package/lib/esm/components/CaseEditView/Case.js +3 -1
  7. package/lib/esm/components/CaseEditView/CaseOverview/index.d.ts.map +1 -1
  8. package/lib/esm/components/CaseEditView/CaseOverview/index.js +6 -4
  9. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseContactPhoneNumber.d.ts.map +1 -1
  10. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseContactPhoneNumber.js +38 -34
  11. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseDetailsManagement.d.ts.map +1 -1
  12. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseDetailsManagement.js +2 -4
  13. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/ProductVersion.d.ts.map +1 -1
  14. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/ProductVersion.js +19 -59
  15. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/VerifyCaseStatusModal/VerifyCaseStatusModal.d.ts.map +1 -1
  16. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/VerifyCaseStatusModal/VerifyCaseStatusModal.js +5 -3
  17. package/lib/esm/components/CaseInformation/CaseInformation.d.ts.map +1 -1
  18. package/lib/esm/components/CaseInformation/CaseInformation.js +7 -5
  19. package/lib/esm/components/CaseInformation/ContactPhoneNumber.d.ts.map +1 -1
  20. package/lib/esm/components/CaseInformation/ContactPhoneNumber.js +37 -24
  21. package/lib/esm/components/CaseInformation/SupportLevel.d.ts.map +1 -1
  22. package/lib/esm/components/CaseInformation/SupportLevel.js +32 -55
  23. package/lib/esm/components/CaseManagement/CaseLanguageSelector.js +2 -2
  24. package/lib/esm/components/CaseManagement/CaseManagement.d.ts.map +1 -1
  25. package/lib/esm/components/CaseManagement/CaseManagement.js +4 -7
  26. package/lib/esm/components/IdeaInformation/IdeaInformation.d.ts.map +1 -1
  27. package/lib/esm/components/IdeaInformation/IdeaInformation.js +10 -10
  28. package/lib/esm/components/OpenCase/SupportTypeSelectorPage.d.ts.map +1 -1
  29. package/lib/esm/components/OpenCase/SupportTypeSelectorPage.js +4 -2
  30. package/lib/esm/components/ProductSelector/AllProductsSelector.d.ts +0 -1
  31. package/lib/esm/components/ProductSelector/AllProductsSelector.d.ts.map +1 -1
  32. package/lib/esm/components/ProductSelector/AllProductsSelector.js +3 -15
  33. package/lib/esm/components/ProductSelector/NewProductDropdownSelector.d.ts.map +1 -1
  34. package/lib/esm/components/ProductSelector/NewProductDropdownSelector.js +13 -37
  35. package/lib/esm/components/ProductSelector/NewProductVersionSelector.d.ts.map +1 -1
  36. package/lib/esm/components/ProductSelector/NewProductVersionSelector.js +19 -53
  37. package/lib/esm/components/ProductSelector/ProductSelector.d.ts.map +1 -1
  38. package/lib/esm/components/ProductSelector/ProductSelector.js +1 -3
  39. package/lib/esm/components/Review/Review.d.ts.map +1 -1
  40. package/lib/esm/components/Review/Review.js +6 -10
  41. package/lib/esm/components/SessionRestore/SessionRestore.d.ts.map +1 -1
  42. package/lib/esm/components/SessionRestore/SessionRestore.js +3 -1
  43. package/lib/esm/components/shared/useIsSectionValid.d.ts.map +1 -1
  44. package/lib/esm/components/shared/useIsSectionValid.js +50 -64
  45. package/lib/esm/components/wizardLayout/GlobalTroubleshootEffects.d.ts.map +1 -1
  46. package/lib/esm/components/wizardLayout/GlobalTroubleshootEffects.js +34 -9
  47. package/lib/esm/components/wizardLayout/WizardLayout.d.ts.map +1 -1
  48. package/lib/esm/components/wizardLayout/WizardLayout.js +6 -7
  49. package/lib/esm/components/wizardLayout/WizardNavigation.d.ts.map +1 -1
  50. package/lib/esm/components/wizardLayout/WizardNavigation.js +10 -9
  51. package/lib/esm/hooks/useResetCaseCreate.d.ts.map +1 -1
  52. package/lib/esm/hooks/useResetCaseCreate.js +13 -11
  53. package/lib/esm/reducers/CaseConstNTypes.d.ts +23 -0
  54. package/lib/esm/reducers/CaseConstNTypes.d.ts.map +1 -1
  55. package/lib/esm/reducers/CaseConstNTypes.js +5 -0
  56. package/lib/esm/reducers/CaseHelpers.d.ts +2 -1
  57. package/lib/esm/reducers/CaseHelpers.d.ts.map +1 -1
  58. package/lib/esm/reducers/CaseHelpers.js +39 -2
  59. package/lib/esm/reducers/CaseOverviewReducer.d.ts +3 -1
  60. package/lib/esm/reducers/CaseOverviewReducer.d.ts.map +1 -1
  61. package/lib/esm/reducers/CaseOverviewReducer.js +7 -5
  62. package/lib/esm/reducers/CaseReducer.d.ts +15 -5
  63. package/lib/esm/reducers/CaseReducer.d.ts.map +1 -1
  64. package/lib/esm/reducers/CaseReducer.js +60 -23
  65. package/package.json +6 -6
@@ -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,qBA6KrC;kBA7KQ,eAAe;;;AAiLxB,OAAO,EAAE,eAAe,EAAE,CAAC"}
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 { accounts } from '@cee-eng/hydrajs';
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
- !isEmpty(loggedInUserRights.data) &&
69
- onAccountChange({
70
- accountNumber: loggedInUserRights.data.getAccountNumber(),
71
- name: loggedInUserRights.data.getAccountName(),
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
- const getAccountEntitlement = () => __awaiter(this, void 0, void 0, function* () {
82
- // internal user doesn't open case for customer. No need to check account entitlement
83
- if (selectedAccountDetails.data.accountNumber === loggedInUsersAccount.data.accountNumber) {
84
- setNoValidEntitlement(routeDispatch, false);
85
- setShowNotEntitledMessage(false);
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
- try {
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
- }, [selectedAccountDetails.data.accountNumber, loggedInUserRights.data, loggedInUsersAccount.data]);
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 })),
@@ -1 +1 @@
1
- {"version":3,"file":"RequestEscalationModal.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseEditView/ActiveCustomerEscalation/RequestEscalationModal.tsx"],"names":[],"mappings":"AAiCA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAkBnD,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,qBA6WnD"}
1
+ {"version":3,"file":"RequestEscalationModal.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseEditView/ActiveCustomerEscalation/RequestEscalationModal.tsx"],"names":[],"mappings":"AAkCA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAkBnD,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,qBAoXnD"}
@@ -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';
@@ -27,6 +28,7 @@ const customerGEOKeys = Object.keys(CustomerGEOs);
27
28
  export function RequestEscalationModal(props) {
28
29
  const { globalMetadataState: { loggedInUser, loggedInUserRights }, } = useGlobalStateContext();
29
30
  const { t } = useTranslation();
31
+ const apolloClient = useApolloClient();
30
32
  const [categories, setCategories] = useState([]);
31
33
  const initialState = {
32
34
  subject: '',
@@ -68,7 +70,7 @@ export function RequestEscalationModal(props) {
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 fetchCaseDetails(caseDispatch, props.caseNumber, loggedInUserRights.data, loggedInUser.data);
73
+ yield fetchCaseDetails(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
  });
@@ -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,qBAmPzC"}
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,qBA0PzC"}
@@ -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 { CoverSpinner, ErrorBoundary, OverviewContentLoader, ToastNotification, useDocumentTitle, usePrevious, } from '@rh-support/components';
11
12
  import { GlobalMetadataStateContext, HostnameAwarenessModal } from '@rh-support/react-context';
12
13
  import { AbilityContext, CaseDetailsFields, resourceActions, resources } from '@rh-support/user-permissions';
@@ -30,6 +31,7 @@ import { PDFContext } from './PDFContainer';
30
31
  export default function Case(props) {
31
32
  const { globalMetadataState: { loggedInUserRights, loggedInUsersAccount, loggedInUser }, } = 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,7 +109,7 @@ export default function Case(props) {
107
109
  caseDispatch(action);
108
110
  }
109
111
  };
110
- yield fetchCaseDetails(safeDispatch, targetCaseNumber, loggedInUserRights.data, loggedInUser.data);
112
+ yield fetchCaseDetails(safeDispatch, targetCaseNumber, loggedInUserRights.data, loggedInUser.data, apolloClient);
111
113
  if (currentCaseRef.current !== targetCaseNumber)
112
114
  return;
113
115
  if (canSeeRMEs) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseEditView/CaseOverview/index.tsx"],"names":[],"mappings":"AA+BA,OAAO,KAAkD,MAAM,OAAO,CAAC;AA4BvE,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,qBA0fjD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseEditView/CaseOverview/index.tsx"],"names":[],"mappings":"AAgCA,OAAO,KAAkD,MAAM,OAAO,CAAC;AA4BvE,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,qBA2fjD"}
@@ -7,11 +7,12 @@ 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 { Alert, AlertVariant, Button, ButtonVariant, ExpandableSection, Label, ModalVariant, } from '@patternfly/react-core';
11
12
  import ExternalLinkAltIcon from '@patternfly/react-icons/dist/js/icons/external-link-alt-icon';
12
13
  import LockIcon from '@patternfly/react-icons/dist/js/icons/lock-icon';
13
14
  import { ToastNotification, useConfirmation } from '@rh-support/components';
14
- import { CloseCaseModal, fetchCaseSeverities, fetchCaseTypes, GlobalMetadataDispatchContext, GlobalMetadataStateContext, useCanEditCase, } from '@rh-support/react-context';
15
+ import { CloseCaseModal, fetchCaseSeveritiesHydra, fetchCaseTypesHydra, GlobalMetadataDispatchContext, GlobalMetadataStateContext, useCanEditCase, } from '@rh-support/react-context';
15
16
  import { AbilityContext, CaseDetailsFields, resourceActions, resources } from '@rh-support/user-permissions';
16
17
  import { dtmTrackEventCaseStepEncountered, haventLoadedMetadata, isOpenShiftOnlineProduct, PreviousCaseTypes, toNewCaseTypeMapper, toNewCaseTypeSwitcher, } from '@rh-support/utils';
17
18
  import isEqual from 'lodash/isEqual';
@@ -74,6 +75,7 @@ export default function CaseOverview(props) {
74
75
  const canEditCase = useCanEditCase();
75
76
  const caseDispatch = useCaseDispatch();
76
77
  const globalMetadataDispatchContext = useContext(GlobalMetadataDispatchContext);
78
+ const apolloClient = useApolloClient();
77
79
  const { globalMetadataState: { allCaseTypes, allCaseSeverities, viewAsCustomer, loggedInUsersAccount, loggedInUserRights, }, } = useContext(GlobalMetadataStateContext);
78
80
  const canManageCase = loggedInUserRights.data.canManageCases();
79
81
  const switchedCaseType = toNewCaseTypeSwitcher(caseType);
@@ -89,13 +91,13 @@ export default function CaseOverview(props) {
89
91
  }
90
92
  }
91
93
  if (haventLoadedMetadata(allCaseSeverities)) {
92
- fetchCaseSeverities(globalMetadataDispatchContext, loggedInUsersAccount.data.secureSupport);
94
+ fetchCaseSeveritiesHydra(globalMetadataDispatchContext, loggedInUsersAccount.data.secureSupport);
93
95
  }
94
96
  if (haventLoadedMetadata(allCaseTypes)) {
95
- fetchCaseTypes(globalMetadataDispatchContext, loggedInUsersAccount.data.secureSupport);
97
+ fetchCaseTypesHydra(globalMetadataDispatchContext, loggedInUsersAccount.data.secureSupport);
96
98
  }
97
99
  if (haventLoadedMetadata(caseOverviewState.allCaseStatuses)) {
98
- fetchAllStatuses(caseOverviewDispatch, loggedInUsersAccount.data.secureSupport);
100
+ fetchAllStatuses(caseOverviewDispatch, apolloClient);
99
101
  }
100
102
  // eslint-disable-next-line react-hooks/exhaustive-deps
101
103
  }, [
@@ -1 +1 @@
1
- {"version":3,"file":"CaseContactPhoneNumber.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/CaseDetails/CaseContactPhoneNumber.tsx"],"names":[],"mappings":"AASA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAgB/D,wBAAgB,sBAAsB,sBAoYrC"}
1
+ {"version":3,"file":"CaseContactPhoneNumber.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/CaseDetails/CaseContactPhoneNumber.tsx"],"names":[],"mappings":"AAWA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAwC/D,wBAAgB,sBAAsB,sBAyXrC"}
@@ -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 { contacts } from '@cee-eng/hydrajs';
11
12
  import { InputGroupText, ValidatedOptions } from '@patternfly/react-core';
12
13
  import CheckIcon from '@patternfly/react-icons/dist/js/icons/check-icon';
@@ -14,6 +15,7 @@ import PencilAltIcon from '@patternfly/react-icons/dist/js/icons/pencil-alt-icon
14
15
  import TimesIcon from '@patternfly/react-icons/dist/js/icons/times-icon';
15
16
  import { getPhoneObj, PhoneInput, ToastNotification } from '@rh-support/components';
16
17
  import { GlobalMetadataStateContext, useCanEditCase } from '@rh-support/react-context';
18
+ import { GET_ACCOUNT_CONTACTS } from '@rh-support/utils';
17
19
  import isEmpty from 'lodash/isEmpty';
18
20
  import isEqual from 'lodash/isEqual';
19
21
  import React, { useContext, useEffect, useState } from 'react';
@@ -26,13 +28,34 @@ import { setCaseState, updateCaseDetails } from '../../../../reducers/CaseReduce
26
28
  import { ContactPhoneNumberPopOver } from '../../../CaseInformation/ContactPhoneNumberPopOver';
27
29
  import { removeAllChars, trimAndReplacePlus } from '../../../shared/utils';
28
30
  import { PDFContext } from '../../PDFContainer';
31
+ function fetchContactBySSO(apolloClient, accountNumber, ssoUsername) {
32
+ return __awaiter(this, void 0, void 0, function* () {
33
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
34
+ const { data } = yield apolloClient.query({
35
+ query: GET_ACCOUNT_CONTACTS,
36
+ variables: {
37
+ accountNumber: { eq: accountNumber },
38
+ contactsWhere: { SSOUserName__c: { eq: ssoUsername } },
39
+ first: 1,
40
+ },
41
+ fetchPolicy: 'network-only',
42
+ });
43
+ const response = data;
44
+ const contactNode = (_j = (_h = (_g = (_f = (_e = (_d = (_c = (_b = (_a = response === null || response === void 0 ? void 0 : response.salesforce_support_uiapi) === null || _a === void 0 ? void 0 : _a.query) === null || _b === void 0 ? void 0 : _b.SalesforceSupportAccount) === 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.Contacts) === null || _g === void 0 ? void 0 : _g.edges) === null || _h === void 0 ? void 0 : _h[0]) === null || _j === void 0 ? void 0 : _j.node;
45
+ return {
46
+ phone: (_l = (_k = contactNode === null || contactNode === void 0 ? void 0 : contactNode.Phone) === null || _k === void 0 ? void 0 : _k.value) !== null && _l !== void 0 ? _l : '',
47
+ };
48
+ });
49
+ }
29
50
  export function CaseContactPhoneNumber() {
30
51
  var _a;
31
- const { phoneCountryCode = '', phoneAreaCodePrefixLineNumber = '', caseNumber, contactSSOName, suppliedPhoneNumberVerified, isCaseOwnerUpdating, hasLoggedInUserConfirmedPhoneNumber, isCasePhoneUpdating, } = useCaseSelector((state) => ({
52
+ const apolloClient = useApolloClient();
53
+ const { phoneCountryCode = '', phoneAreaCodePrefixLineNumber = '', caseNumber, contactSSOName, accountNumberRef, suppliedPhoneNumberVerified, isCaseOwnerUpdating, hasLoggedInUserConfirmedPhoneNumber, isCasePhoneUpdating, } = useCaseSelector((state) => ({
32
54
  phoneCountryCode: state.caseDetails.phoneCountryCode || '',
33
55
  phoneAreaCodePrefixLineNumber: state.caseDetails.phoneAreaCodePrefixLineNumber || '',
34
56
  caseNumber: state.caseDetails.caseNumber,
35
57
  contactSSOName: state.caseDetails.contactSSOName,
58
+ accountNumberRef: state.caseDetails.accountNumberRef,
36
59
  suppliedPhoneNumberVerified: state.caseDetails.suppliedPhoneNumberVerified,
37
60
  isCaseOwnerUpdating: state.isCaseOwnerUpdating,
38
61
  hasLoggedInUserConfirmedPhoneNumber: state.hasLoggedInUserConfirmedPhoneNumber,
@@ -180,29 +203,17 @@ export function CaseContactPhoneNumber() {
180
203
  if (contactSSOName === loggedInUser.data.ssoUsername) {
181
204
  try {
182
205
  setIsFetchingSSO(true);
183
- const loggedInUserContact = yield (contacts === null || contacts === void 0 ? void 0 : contacts.getSFDCContactBySso(contactSSOName));
206
+ const loggedInUserContact = yield fetchContactBySSO(apolloClient, accountNumberRef, contactSSOName);
184
207
  setIsFetchingSSO(false);
185
- if (loggedInUserContact.supportPhoneAreaCodePrefixLineNumber) {
186
- // User has opened a case before and has phone and area code in her/his contact on SF
187
- _phoneAreaCodePrefixLineNumber = loggedInUserContact.supportPhoneAreaCodePrefixLineNumber;
188
- _phoneCountryCode = loggedInUserContact.supportPhoneCountryCode;
189
- _suppliedPhoneNumberVerified =
190
- isEqual(hasLoggedInUserConfirmedPhoneNumber, 'True') ||
191
- isEqual(hasLoggedInUserConfirmedPhoneNumber, 'Deferred')
192
- ? hasLoggedInUserConfirmedPhoneNumber
193
- : 'False';
194
- }
195
- else {
196
- const phoneLine = getPhoneObj(loggedInUserContact.phone).phoneLine || '';
197
- const countryCode = getPhoneObj(loggedInUserContact.phone).countryCode;
198
- _phoneAreaCodePrefixLineNumber = phoneLine;
199
- _phoneCountryCode = countryCode;
200
- _suppliedPhoneNumberVerified =
201
- isEqual(hasLoggedInUserConfirmedPhoneNumber, 'True') ||
202
- isEqual(hasLoggedInUserConfirmedPhoneNumber, 'Deferred')
203
- ? hasLoggedInUserConfirmedPhoneNumber
204
- : 'False';
205
- }
208
+ const phoneLine = getPhoneObj(loggedInUserContact.phone).phoneLine || '';
209
+ const countryCode = getPhoneObj(loggedInUserContact.phone).countryCode;
210
+ _phoneAreaCodePrefixLineNumber = phoneLine;
211
+ _phoneCountryCode = countryCode;
212
+ _suppliedPhoneNumberVerified =
213
+ isEqual(hasLoggedInUserConfirmedPhoneNumber, 'True') ||
214
+ isEqual(hasLoggedInUserConfirmedPhoneNumber, 'Deferred')
215
+ ? hasLoggedInUserConfirmedPhoneNumber
216
+ : 'False';
206
217
  }
207
218
  catch (_a) {
208
219
  _phoneAreaCodePrefixLineNumber = '';
@@ -216,18 +227,11 @@ export function CaseContactPhoneNumber() {
216
227
  // user is openning case for others (use is partner or red hatter)
217
228
  try {
218
229
  setIsFetchingSSO(true);
219
- const selectedContact = yield contacts.getSFDCContactBySso(contactSSOName);
230
+ const selectedContact = yield fetchContactBySSO(apolloClient, accountNumberRef, contactSSOName);
220
231
  setIsFetchingSSO(false);
221
- if (selectedContact.supportPhoneAreaCodePrefixLineNumber) {
222
- _phoneAreaCodePrefixLineNumber = selectedContact.supportPhoneAreaCodePrefixLineNumber;
223
- _phoneCountryCode = selectedContact.supportPhoneCountryCode;
224
- _suppliedPhoneNumberVerified = 'Deferred';
225
- }
226
- else {
227
- _phoneAreaCodePrefixLineNumber = getPhoneObj(selectedContact.phone).phoneLine || '';
228
- _phoneCountryCode = getPhoneObj(selectedContact.phone).countryCode || '';
229
- _suppliedPhoneNumberVerified = 'Deferred';
230
- }
232
+ _phoneAreaCodePrefixLineNumber = getPhoneObj(selectedContact.phone).phoneLine || '';
233
+ _phoneCountryCode = getPhoneObj(selectedContact.phone).countryCode || '';
234
+ _suppliedPhoneNumberVerified = 'Deferred';
231
235
  }
232
236
  catch (e) {
233
237
  _phoneAreaCodePrefixLineNumber = '';
@@ -1 +1 @@
1
- {"version":3,"file":"CaseDetailsManagement.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/CaseDetails/CaseDetailsManagement.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAG5D,OAAO,KAA+B,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAkBvD,UAAU,MAAO,SAAQ,gBAAgB;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,mBAAmB,CAAC;IAChC,MAAM,EAAE,KAAK,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;CAClD;AAED,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAAC,KAAK,EAAE,MAAM,qBAgE1D"}
1
+ {"version":3,"file":"CaseDetailsManagement.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/CaseDetails/CaseDetailsManagement.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAG5D,OAAO,KAA+B,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAkBvD,UAAU,MAAO,SAAQ,gBAAgB;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,mBAAmB,CAAC;IAChC,MAAM,EAAE,KAAK,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;CAClD;AAED,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAAC,KAAK,EAAE,MAAM,qBAoE1D"}
@@ -4,9 +4,9 @@ import isEqual from 'lodash/isEqual';
4
4
  import React, { useContext, useState } from 'react';
5
5
  import { useCaseSelector } from '../../../../context/CaseContext';
6
6
  import { OwnerSelector } from '../../../AccountInfo/OwnerSelector';
7
- import CaseGroup from '../../../CaseInformation/CaseGroup';
7
+ // import CaseGroup from '../../../CaseInformation/CaseGroup';
8
8
  import Fts from '../../../CaseInformation/Fts';
9
- import { Cep } from '../../../CaseManagement/Cep';
9
+ // import { Cep } from '../../../CaseManagement/Cep';
10
10
  import { RHAssociatesSelector } from '../../../CaseManagement/RHAssociatesSelector';
11
11
  import CaseContactSelector from '../../../CaseManagement/SendNotifications/CaseContactSelector';
12
12
  import { PartnerCaseHelper } from '../../ShareCase/PartnerCaseHelper';
@@ -41,12 +41,10 @@ export default function CaseDetailsManagement(props) {
41
41
  React.createElement(CaseContactPhoneNumberAlert, { isConfirm: true }),
42
42
  canSeeInternalStatus && React.createElement(CaseInternalStatus, null),
43
43
  canSeeSBRGroups && React.createElement(CaseSbrGroups, null),
44
- React.createElement(CaseGroup, null),
45
44
  React.createElement(CaseReferenceNumber, null),
46
45
  canSeeEmailNotifications && React.createElement(CaseContactSelector, null),
47
46
  React.createElement(RHAssociatesSelector, null),
48
47
  React.createElement(Fts, { inlineEditable: true }),
49
- React.createElement(Cep, null),
50
48
  React.createElement(SFDCUrl, null),
51
49
  React.createElement(ShareWithPartner, { routeProps: props.routeProps, isUpdatingPartner: isUpdatingPartner, accountNumber: accountNumber })))));
52
50
  }
@@ -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,qBA4WrC;AAED,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"ProductVersion.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/CaseDetails/ProductVersion.tsx"],"names":[],"mappings":"AAoCA,OAAO,KAAkD,MAAM,OAAO,CAAC;AASvE,UAAU,MAAM;IACZ,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACvC;AAED,iBAAS,eAAe,CAAC,KAAK,EAAE,MAAM,qBAgUrC;AAED,eAAe,eAAe,CAAC"}
@@ -7,12 +7,12 @@ 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 { Alert, AlertVariant, Button, MenuToggle, Select, SelectList, SelectOption, Spinner, TextInputGroup, TextInputGroupMain, TextInputGroupUtilities, } from '@patternfly/react-core';
11
12
  import TimesIcon from '@patternfly/react-icons/dist/js/icons/times-icon';
12
13
  import { AlertMessage, AlertType, SingleSelectDropdown, ToastNotification, useSelectKeyboardNavigator, } from '@rh-support/components';
13
14
  import { fetchProducts, GlobalMetadataDispatchContext, GlobalMetadataStateContext, useCanEditCase, } from '@rh-support/react-context';
14
- import { getUniqueSortedVersions, haventLoadedMetadata, toOption, } from '@rh-support/utils';
15
- import filter from 'lodash/filter';
15
+ import { haventLoadedMetadata, toOption } from '@rh-support/utils';
16
16
  import isEmpty from 'lodash/isEmpty';
17
17
  import isEqual from 'lodash/isEqual';
18
18
  import isUndefined from 'lodash/isUndefined';
@@ -21,7 +21,7 @@ import React, { useContext, useEffect, useRef, useState } from 'react';
21
21
  import { Trans, useTranslation } from 'react-i18next';
22
22
  import { useCaseDispatch, useCaseSelector } from '../../../../context/CaseContext';
23
23
  import { useCaseUpdateErrorMessage } from '../../../../hooks/useCaseUpdateErrorMessage';
24
- import { fetchCaseEntitlements, getVersionsDetails, updateCaseDetails } from '../../../../reducers/CaseReducer';
24
+ import { getVersionsDetails, updateCaseDetails } from '../../../../reducers/CaseReducer';
25
25
  import { getProductObj } from '../../../shared/utils';
26
26
  import { PDFContext } from '../../PDFContainer';
27
27
  function ProductNVersion(props) {
@@ -32,22 +32,21 @@ 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, isCaseUpdating } = useCaseSelector((state) => ({
35
+ const { product, version, caseNumber, versionsDetails, isCaseUpdating } = useCaseSelector((state) => ({
36
36
  product: state.caseDetails.product,
37
37
  version: state.caseDetails.version,
38
- contactSSOName: state.caseDetails.contactSSOName,
39
38
  caseNumber: state.caseDetails.caseNumber,
40
39
  versionsDetails: state.versionsDetails,
41
40
  isCaseUpdating: state.isCaseUpdating,
42
41
  }), isEqual);
43
42
  const caseDispatch = useCaseDispatch();
44
43
  const dispatchToGlobalMetadataReducer = useContext(GlobalMetadataDispatchContext);
44
+ const apolloClient = useApolloClient();
45
45
  const { globalMetadataState: { allProducts }, } = useContext(GlobalMetadataStateContext);
46
46
  const [isProductInvalid, setIsProductInvalid] = useState(false);
47
47
  const [isVersionInvalid, setIsVersionInvalid] = useState(false);
48
48
  const [selectedProductLocal, setSelectedProductLocal] = useState(product);
49
49
  const [selectedVersionLocal, setSelectedVersionLocal] = useState(version);
50
- const [isSEProductApiIsDown, setIsSEProductApiIsDown] = useState(false);
51
50
  const [inputValue, setInputValue] = useState(product);
52
51
  const [shouldFilter, setShouldFilter] = useState(false);
53
52
  const onToggleClick = () => {
@@ -112,19 +111,11 @@ function ProductNVersion(props) {
112
111
  }
113
112
  setIsProductUpdating(true);
114
113
  setIsVersionUpdating(true);
115
- if (!onlyVersionChanged && contactSSOName && caseNumber) {
116
- yield updateCaseDetails(caseDispatch, caseNumber, {
117
- product: selectedProduct,
118
- version: selectedVersion,
119
- });
120
- yield fetchCaseEntitlements(caseDispatch, contactSSOName, selectedProduct, undefined, true, caseNumber);
121
- }
122
- else {
123
- yield updateCaseDetails(caseDispatch, caseNumber, {
124
- product: selectedProduct,
125
- version: selectedVersion,
126
- });
127
- }
114
+ // TODO: migrate to GraphQL - entitlements now resolved from SFDCProductJSON__c via productServiceLevel
115
+ yield updateCaseDetails(caseDispatch, caseNumber, {
116
+ product: selectedProduct,
117
+ version: selectedVersion,
118
+ });
128
119
  setIsProductUpdating(false);
129
120
  setIsVersionUpdating(false);
130
121
  if (onlyVersionChanged) {
@@ -150,60 +141,29 @@ function ProductNVersion(props) {
150
141
  });
151
142
  // To check if version in invalid
152
143
  const checkIfVersionIsInvalid = isVersionInvalid && isEmpty(selectedVersionLocal);
153
- // when user changes selected product, we need to get the versions
154
144
  useEffect(() => {
155
145
  if (!selectedProductLocal)
156
146
  return;
157
- const getVersions = () => __awaiter(this, void 0, void 0, function* () {
158
- try {
159
- yield getVersionsDetails(caseDispatch, selectedProductLocal);
160
- }
161
- catch (e) {
162
- console.log(e);
163
- }
164
- });
165
- // call sfdc version api to get version flags that we only get from sfdc api
166
- // flags are used in severity components
167
- getVersions();
168
- // populate versions with SE product api versions
169
147
  const productObj = getProductObj(allProducts.data.productsResult, selectedProductLocal);
170
- if (productObj.versions) {
171
- const productVersions = productObj.hasComponentsInsteadOfVersions
172
- ? productObj.versions.sort()
173
- : productObj.versions;
174
- setVersions(productVersions);
175
- if (productVersions.length === 1 && !selectedVersionLocal) {
176
- setSelectedVersionLocal(productVersions[0]);
177
- updateProductVerstion(selectedProductLocal, productVersions[0]);
178
- }
179
- }
180
- else {
181
- setIsSEProductApiIsDown(true);
148
+ if (productObj.productId) {
149
+ getVersionsDetails(caseDispatch, apolloClient, productObj.productId, productObj.name || selectedProductLocal);
182
150
  }
183
151
  // eslint-disable-next-line react-hooks/exhaustive-deps
184
152
  }, [selectedProductLocal, caseDispatch, allProducts.data]);
185
- // observe when fetched versions are available
186
153
  useEffect(() => {
187
- if (!isSEProductApiIsDown)
154
+ var _a;
155
+ if (versionsDetails.isFetching || !((_a = versionsDetails.data) === null || _a === void 0 ? void 0 : _a.length))
188
156
  return;
189
157
  const fetchedVersions = versionsDetails.data.map(({ name }) => name);
158
+ setVersions(fetchedVersions);
190
159
  if (fetchedVersions.length === 1 && !selectedVersionLocal) {
191
- setVersions(fetchedVersions);
192
160
  setSelectedVersionLocal(fetchedVersions[0]);
193
161
  updateProductVerstion(selectedProductLocal, fetchedVersions[0]);
194
- return;
195
162
  }
196
- const productObj = getProductObj(allProducts.data.productsResult, selectedProductLocal);
197
- const sfdcVersions = getUniqueSortedVersions(fetchedVersions);
198
- const versionsForSelectedProduct = productObj.versions ? productObj.versions : sfdcVersions;
199
- const productVersions = (productObj === null || productObj === void 0 ? void 0 : productObj.hasComponentsInsteadOfVersions)
200
- ? versionsForSelectedProduct.sort()
201
- : versionsForSelectedProduct;
202
- setVersions(productVersions);
203
163
  // eslint-disable-next-line react-hooks/exhaustive-deps
204
164
  }, [versionsDetails.data]);
205
165
  const computeDropdownList = () => {
206
- const list = filter(allProducts.data.productsResult, (p) => p.isEntitledProduct);
166
+ const list = allProducts.data.productsResult;
207
167
  if (!list)
208
168
  return [];
209
169
  const options = shouldFilter && !isUndefined(inputValue) && !isEmpty(inputValue === null || inputValue === void 0 ? void 0 : inputValue.trim())
@@ -233,10 +193,10 @@ function ProductNVersion(props) {
233
193
  };
234
194
  useEffect(() => {
235
195
  if (haventLoadedMetadata(allProducts, (data) => isEmpty(data.productsResult))) {
236
- fetchProducts(dispatchToGlobalMetadataReducer, contactSSOName);
196
+ fetchProducts(dispatchToGlobalMetadataReducer, apolloClient);
237
197
  }
238
198
  // eslint-disable-next-line react-hooks/exhaustive-deps
239
- }, [allProducts, dispatchToGlobalMetadataReducer, contactSSOName]);
199
+ }, [allProducts, dispatchToGlobalMetadataReducer, apolloClient]);
240
200
  return (React.createElement(React.Fragment, null,
241
201
  React.createElement(AlertMessage, { show: !allProducts.isFetching && allProducts.isError, title: t('There was an error loading products.'), variant: AlertType.DANGER }),
242
202
  isEmpty(selectedVersionLocal) && (selectedVersionLocal === null || selectedVersionLocal === void 0 ? void 0 : selectedVersionLocal.length) < 2 && (React.createElement(Alert, { isInline: true, className: "pf-v6-u-mb-md", variant: AlertVariant.danger, title: React.createElement(Trans, null, "Please clear the errors to change the product on your case") })),
@@ -253,6 +213,6 @@ function ProductNVersion(props) {
253
213
  React.createElement(SingleSelectDropdown, { className: "open-case-version", id: "version-dropdown", placeholder: t(`Select a version`), selected: getVersionSelectedDropdownOption, options: getVersionDropdownOptions, isInvalid: checkIfVersionIsInvalid, isDisabled: isVersionUpdating ||
254
214
  (allProducts.isFetching && !allProducts.isError) ||
255
215
  isEmpty(selectedProductLocal) ||
256
- isCaseUpdating, onSelect: onVersionChange, isLoading: isVersionUpdating || (isSEProductApiIsDown && versionsDetails.isFetching), dataTrackingId: "case-details-version-selector", isScrollable: true }))))));
216
+ isCaseUpdating, onSelect: onVersionChange, isLoading: isVersionUpdating || versionsDetails.isFetching, dataTrackingId: "case-details-version-selector", isScrollable: true }))))));
257
217
  }
258
218
  export default ProductNVersion;
@@ -1 +1 @@
1
- {"version":3,"file":"VerifyCaseStatusModal.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/CaseEditView/Tabs/CaseDiscussion/VerifyCaseStatusModal/VerifyCaseStatusModal.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAsD,MAAM,OAAO,CAAC;AAa3E,UAAU,MAAM;IACZ,SAAS,EAAE,CAAC,WAAW,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;CACvB;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,qBA6IlD"}
1
+ {"version":3,"file":"VerifyCaseStatusModal.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/CaseEditView/Tabs/CaseDiscussion/VerifyCaseStatusModal/VerifyCaseStatusModal.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAsD,MAAM,OAAO,CAAC;AAa3E,UAAU,MAAM;IACZ,SAAS,EAAE,CAAC,WAAW,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;CACvB;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,qBA8IlD"}
@@ -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 { Button, ButtonVariant, Modal, ModalBody, ModalFooter, ModalHeader, ModalVariant, } from '@patternfly/react-core';
11
12
  import { SingleSelectDropdown, ToastNotification } from '@rh-support/components';
12
13
  import { GlobalMetadataStateContext, useCanEditCase } from '@rh-support/react-context';
@@ -43,11 +44,12 @@ export function VerifyCaseStatusModal(props) {
43
44
  selectedAccountDetails: state.selectedAccountDetails,
44
45
  }), isEqual);
45
46
  const { status } = caseState.caseDetails;
46
- const { globalMetadataState: { loggedInUsersAccount, loggedInUserRights }, } = useContext(GlobalMetadataStateContext);
47
+ const { globalMetadataState: { loggedInUserRights }, } = useContext(GlobalMetadataStateContext);
48
+ const apolloClient = useApolloClient();
47
49
  const canManageCase = loggedInUserRights.data.canManageCases();
48
50
  useEffect(() => {
49
- fetchAllStatuses(caseOverviewDispatch, loggedInUsersAccount.data.secureSupport);
50
- }, [caseOverviewDispatch, loggedInUsersAccount.data.secureSupport]);
51
+ fetchAllStatuses(caseOverviewDispatch, apolloClient);
52
+ }, [caseOverviewDispatch, apolloClient]);
51
53
  const { isCaseUpdating } = caseState;
52
54
  const canEditCase = useCanEditCase();
53
55
  const caseDispatch = useCaseDispatch();
@@ -1 +1 @@
1
- {"version":3,"file":"CaseInformation.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/CaseInformation.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAErD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAQvD,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC;CACnC;AAED,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,KAAK,EAAE,MAAM,qBAkHpD"}
1
+ {"version":3,"file":"CaseInformation.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/CaseInformation.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAErD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAQvD,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC;CACnC;AAED,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,KAAK,EAAE,MAAM,qBAoHpD"}