@rh-support/troubleshoot 2.6.276 → 2.6.280

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 +40 -28
  3. package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/RequestEscalationModal.d.ts.map +1 -1
  4. package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/RequestEscalationModal.js +1 -3
  5. package/lib/esm/components/CaseEditView/Case.d.ts.map +1 -1
  6. package/lib/esm/components/CaseEditView/Case.js +1 -3
  7. package/lib/esm/components/CaseEditView/CaseOverview/index.d.ts.map +1 -1
  8. package/lib/esm/components/CaseEditView/CaseOverview/index.js +4 -6
  9. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseContactPhoneNumber.d.ts.map +1 -1
  10. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseContactPhoneNumber.js +34 -38
  11. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseDetailsManagement.d.ts.map +1 -1
  12. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseDetailsManagement.js +4 -2
  13. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/ProductVersion.d.ts.map +1 -1
  14. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/ProductVersion.js +59 -19
  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 +3 -5
  17. package/lib/esm/components/CaseInformation/CaseInformation.d.ts.map +1 -1
  18. package/lib/esm/components/CaseInformation/CaseInformation.js +5 -7
  19. package/lib/esm/components/CaseInformation/ContactPhoneNumber.d.ts.map +1 -1
  20. package/lib/esm/components/CaseInformation/ContactPhoneNumber.js +24 -37
  21. package/lib/esm/components/CaseInformation/SupportLevel.d.ts.map +1 -1
  22. package/lib/esm/components/CaseInformation/SupportLevel.js +55 -32
  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 +7 -4
  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 +2 -4
  30. package/lib/esm/components/ProductSelector/AllProductsSelector.d.ts +1 -0
  31. package/lib/esm/components/ProductSelector/AllProductsSelector.d.ts.map +1 -1
  32. package/lib/esm/components/ProductSelector/AllProductsSelector.js +15 -3
  33. package/lib/esm/components/ProductSelector/NewProductDropdownSelector.d.ts.map +1 -1
  34. package/lib/esm/components/ProductSelector/NewProductDropdownSelector.js +37 -13
  35. package/lib/esm/components/ProductSelector/NewProductVersionSelector.d.ts.map +1 -1
  36. package/lib/esm/components/ProductSelector/NewProductVersionSelector.js +53 -19
  37. package/lib/esm/components/ProductSelector/ProductSelector.d.ts.map +1 -1
  38. package/lib/esm/components/ProductSelector/ProductSelector.js +3 -1
  39. package/lib/esm/components/Review/Review.d.ts.map +1 -1
  40. package/lib/esm/components/Review/Review.js +10 -6
  41. package/lib/esm/components/SessionRestore/SessionRestore.d.ts.map +1 -1
  42. package/lib/esm/components/SessionRestore/SessionRestore.js +1 -3
  43. package/lib/esm/components/shared/useIsSectionValid.d.ts.map +1 -1
  44. package/lib/esm/components/shared/useIsSectionValid.js +64 -50
  45. package/lib/esm/components/wizardLayout/GlobalTroubleshootEffects.d.ts.map +1 -1
  46. package/lib/esm/components/wizardLayout/GlobalTroubleshootEffects.js +9 -34
  47. package/lib/esm/components/wizardLayout/WizardLayout.d.ts.map +1 -1
  48. package/lib/esm/components/wizardLayout/WizardLayout.js +7 -6
  49. package/lib/esm/components/wizardLayout/WizardNavigation.d.ts.map +1 -1
  50. package/lib/esm/components/wizardLayout/WizardNavigation.js +9 -10
  51. package/lib/esm/hooks/useResetCaseCreate.d.ts.map +1 -1
  52. package/lib/esm/hooks/useResetCaseCreate.js +11 -13
  53. package/lib/esm/reducers/CaseConstNTypes.d.ts +0 -23
  54. package/lib/esm/reducers/CaseConstNTypes.d.ts.map +1 -1
  55. package/lib/esm/reducers/CaseConstNTypes.js +0 -5
  56. package/lib/esm/reducers/CaseHelpers.d.ts +1 -2
  57. package/lib/esm/reducers/CaseHelpers.d.ts.map +1 -1
  58. package/lib/esm/reducers/CaseHelpers.js +2 -39
  59. package/lib/esm/reducers/CaseOverviewReducer.d.ts +1 -3
  60. package/lib/esm/reducers/CaseOverviewReducer.d.ts.map +1 -1
  61. package/lib/esm/reducers/CaseOverviewReducer.js +5 -7
  62. package/lib/esm/reducers/CaseReducer.d.ts +5 -15
  63. package/lib/esm/reducers/CaseReducer.d.ts.map +1 -1
  64. package/lib/esm/reducers/CaseReducer.js +23 -60
  65. package/package.json +6 -6
@@ -1,15 +1,21 @@
1
- import { Button, MenuToggle, Select, SelectList, SelectOption, Spinner, TextInputGroup, TextInputGroupMain, TextInputGroupUtilities, } from '@patternfly/react-core';
1
+ import { Button, Divider, MenuToggle, Select, SelectGroup, SelectList, SelectOption, Spinner, TextInputGroup, TextInputGroupMain, TextInputGroupUtilities, } from '@patternfly/react-core';
2
2
  import TimesIcon from '@patternfly/react-icons/dist/js/icons/times-icon';
3
3
  import { useSelectKeyboardNavigator } from '@rh-support/components';
4
+ import { GlobalMetadataStateContext } from '@rh-support/react-context';
4
5
  import isEmpty from 'lodash/isEmpty';
5
6
  import isEqual from 'lodash/isEqual';
6
- import React, { useEffect, useRef, useState } from 'react';
7
- import { useTranslation } from 'react-i18next';
7
+ import React, { useContext, useEffect, useRef, useState } from 'react';
8
+ import { Trans, useTranslation } from 'react-i18next';
8
9
  import { useCaseSelector } from '../../context/CaseContext';
10
+ const isProductSupportedForCustomer = (productName, productResults) => {
11
+ const foundItem = productResults.filter((item) => item.name === productName)[0];
12
+ return foundItem ? foundItem.supportedForCustomer : false;
13
+ };
9
14
  export const NewProductDropdownSelector = (props) => {
10
15
  const { t } = useTranslation();
11
16
  const [isOpen, setIsOpen] = useState(false);
12
17
  const [showValidationLocal, setShowValidationLocal] = useState(props.isNextBtnClickedToShowValidationError);
18
+ const [isSelectedProductSupportedForCustomer, setIsSelectedProductSupportedForCustomer] = useState(true);
13
19
  const [filteredProducts, setFilteredProducts] = useState(props.products);
14
20
  const [shouldFilter, setShouldFilter] = useState(false);
15
21
  const textInputRef = useRef();
@@ -17,6 +23,7 @@ export const NewProductDropdownSelector = (props) => {
17
23
  product: state.caseDetails.product,
18
24
  }), isEqual);
19
25
  const [inputValue, setInputValue] = useState('');
26
+ const { globalMetadataState: { allProducts }, } = useContext(GlobalMetadataStateContext);
20
27
  useEffect(() => {
21
28
  setShowValidationLocal(props.isNextBtnClickedToShowValidationError);
22
29
  }, [props.isNextBtnClickedToShowValidationError]);
@@ -26,15 +33,22 @@ export const NewProductDropdownSelector = (props) => {
26
33
  }
27
34
  // eslint-disable-next-line react-hooks/exhaustive-deps
28
35
  }, [product]);
36
+ // Update filtered products whenever input changes
29
37
  useEffect(() => {
38
+ const productsToFilter = props.isCaseCreate ? props.products : allProducts.data.productsResult;
30
39
  if (!isEmpty(inputValue === null || inputValue === void 0 ? void 0 : inputValue.trim())) {
31
- const filtered = props.products.filter((p) => { var _a; return (_a = p.name) === null || _a === void 0 ? void 0 : _a.toLowerCase().includes(inputValue.toLowerCase()); });
40
+ const filtered = productsToFilter.filter((p) => { var _a; return (_a = p.name) === null || _a === void 0 ? void 0 : _a.toLowerCase().includes(inputValue.toLowerCase()); });
32
41
  setFilteredProducts(filtered);
33
42
  }
34
43
  else {
35
- setFilteredProducts(props.products);
44
+ setFilteredProducts(productsToFilter);
36
45
  }
37
- }, [inputValue, props.products]);
46
+ }, [inputValue, props.products, props.isCaseCreate, allProducts.data.productsResult]);
47
+ useEffect(() => {
48
+ product &&
49
+ props.isOnSummaryPage &&
50
+ setIsSelectedProductSupportedForCustomer(isProductSupportedForCustomer(product, allProducts.data.productsResult));
51
+ }, [allProducts.data.productsResult, product, props.isOnSummaryPage]);
38
52
  const onToggleClick = () => {
39
53
  var _a;
40
54
  setIsOpen(!isOpen);
@@ -69,12 +83,14 @@ export const NewProductDropdownSelector = (props) => {
69
83
  setIsOpen(false);
70
84
  },
71
85
  });
72
- const renderProductOptions = () => {
73
- const productsToShow = shouldFilter ? filteredProducts : props.products;
74
- return productsToShow.length > 0 ? (React.createElement(React.Fragment, null, productsToShow.map((prod, index) => {
75
- var _a;
76
- return (React.createElement(SelectOption, { key: `product-${index}`, value: prod, isFocused: focusedItemIndex === index, className: "pf-v6-c-select__menu-wrapper", "data-tracking-id": `${(_a = prod.name) === null || _a === void 0 ? void 0 : _a.replace(/\s+/g, '')}-product-dropdown`, isSelected: prod.name === product }, prod.name));
77
- }))) : (React.createElement(SelectOption, { key: '', value: '', className: "pf-v6-c-select__menu-wrapper", isDisabled: true }, "No Results Found"));
86
+ const createProductGroup = (products, label, type, shouldFilter = false) => {
87
+ const productsToShow = shouldFilter ? filteredProducts : products;
88
+ return productsToShow.length > 0 ? (React.createElement(React.Fragment, null,
89
+ !shouldFilter && (React.createElement(SelectGroup, { label: label, key: type, value: '', className: "product-selector-group", children: '' })),
90
+ productsToShow.map((prod, index) => {
91
+ var _a;
92
+ return (React.createElement(SelectOption, { key: `${type}-${index}`, value: prod, isFocused: focusedItemIndex === index, className: "pf-v6-c-select__menu-wrapper", "data-tracking-id": `${(_a = prod.name) === null || _a === void 0 ? void 0 : _a.replace(/\s+/g, '')}-${type}-dropdown`, isSelected: prod.name === product }, prod.name));
93
+ }))) : (React.createElement(SelectOption, { key: '', value: '', className: "pf-v6-c-select__menu-wrapper", isDisabled: true }, "No Results Found"));
78
94
  };
79
95
  const toggle = (toggleRef) => (React.createElement(MenuToggle, { ref: toggleRef, variant: "typeahead", onClick: onToggleClick, isExpanded: isOpen, isFullWidth: true, isDisabled: props.isLoading, status: isEmpty(inputValue) && showValidationLocal ? 'danger' : undefined },
80
96
  React.createElement(TextInputGroup, { isPlain: true },
@@ -82,8 +98,16 @@ export const NewProductDropdownSelector = (props) => {
82
98
  props.isLoading ? (React.createElement(TextInputGroupUtilities, null,
83
99
  React.createElement(Spinner, { size: "md" }))) : (React.createElement(TextInputGroupUtilities, Object.assign({}, (!inputValue ? { style: { display: 'none' } } : {})),
84
100
  React.createElement(Button, { icon: React.createElement(TimesIcon, { "aria-hidden": true }), variant: "plain", onClick: onClear, "aria-label": "Clear input value" }))))));
101
+ const topProducts = allProducts.data.topProducts.filter((p) => p.isEntitledProduct).slice(0, 3);
85
102
  return (React.createElement("div", null,
86
103
  React.createElement(Select, { id: "product-selector", isOpen: isOpen, onSelect: (e, selection) => onSelect(selection), onOpenChange: (isOpen) => setIsOpen(isOpen), toggle: toggle, selected: product, shouldFocusFirstItemOnOpen: false, isScrollable: true, "data-tracking-id": "get-support-product-dropdown-selector" },
87
- React.createElement(SelectList, { id: "product-selector-listbox" }, renderProductOptions()))));
104
+ React.createElement(SelectList, { id: "product-selector-listbox" },
105
+ !shouldFilter && createProductGroup(topProducts, t('Top products'), 'topProduct'),
106
+ !shouldFilter && React.createElement(Divider, null),
107
+ createProductGroup(props.isCaseCreate ? props.products : allProducts.data.productsResult, t('All products'), 'product', shouldFilter))),
108
+ !props.isLoading && !isSelectedProductSupportedForCustomer && (React.createElement("div", { className: "pf-v6-u-ml-xs pf-v6-u-mt-sm form-instructions" },
109
+ React.createElement(Trans, null, "Red Hat must confirm your subscription status before providing support."),
110
+ React.createElement("br", null),
111
+ React.createElement(Trans, null, "We'll contact you if we have any questions.")))));
88
112
  };
89
113
  export default NewProductDropdownSelector;
@@ -1 +1 @@
1
- {"version":3,"file":"NewProductVersionSelector.d.ts","sourceRoot":"","sources":["../../../../src/components/ProductSelector/NewProductVersionSelector.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAO/D,UAAU,MAAM;IACZ,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,qCAAqC,EAAE,OAAO,CAAC;CAClD;AAED,eAAO,MAAM,yBAAyB,GAAI,OAAO,MAAM,sBAoFtD,CAAC"}
1
+ {"version":3,"file":"NewProductVersionSelector.d.ts","sourceRoot":"","sources":["../../../../src/components/ProductSelector/NewProductVersionSelector.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAM/D,UAAU,MAAM;IACZ,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,qCAAqC,EAAE,OAAO,CAAC;CAClD;AAED,eAAO,MAAM,yBAAyB,GAAI,OAAO,MAAM,sBAmItD,CAAC"}
@@ -1,18 +1,19 @@
1
- import { useApolloClient } from '@apollo/client/react';
2
1
  import { SingleSelectDropdown } from '@rh-support/components';
3
2
  import { GlobalMetadataStateContext } from '@rh-support/react-context';
3
+ import { getUniqueSortedVersions } from '@rh-support/utils';
4
4
  import isEmpty from 'lodash/isEmpty';
5
5
  import isEqual from 'lodash/isEqual';
6
6
  import React, { useContext, useEffect, useState } from 'react';
7
7
  import { useTranslation } from 'react-i18next';
8
8
  import { useCaseDispatch, useCaseSelector } from '../../context/CaseContext';
9
- import { getVersionsDetails, setCaseState } from '../../reducers/CaseReducer';
9
+ import { getVersionsDetails } from '../../reducers/CaseReducer';
10
10
  import { getProductObj } from '../shared/utils';
11
11
  export const NewProductVersionSelector = (props) => {
12
12
  const { t } = useTranslation();
13
+ const [selectVersionOptions, setSelectVersionOptions] = useState([]);
13
14
  const [showValidationLocal, setShowValidationLocal] = useState(props.isNextBtnClickedToShowValidationError);
15
+ const [isSEProductApiIsDown, setIsSEProductApiIsDown] = useState(false);
14
16
  const caseDispatch = useCaseDispatch();
15
- const apolloClient = useApolloClient();
16
17
  const { versionsDetails, product, version } = useCaseSelector((state) => ({
17
18
  product: state.caseDetails.product,
18
19
  version: state.caseDetails.version,
@@ -23,43 +24,76 @@ export const NewProductVersionSelector = (props) => {
23
24
  setShowValidationLocal(props.isNextBtnClickedToShowValidationError);
24
25
  // eslint-disable-next-line react-hooks/exhaustive-deps
25
26
  }, [props.isNextBtnClickedToShowValidationError]);
27
+ // when user selects a product, we need to fetch versions
26
28
  useEffect(() => {
27
29
  if (isEmpty(product))
28
30
  return;
29
31
  const productObj = getProductObj(allProducts.data.productsResult, product);
30
- if (productObj.productId) {
31
- getVersionsDetails(caseDispatch, apolloClient, productObj.productId, productObj.name || product);
32
+ if (productObj.versions) {
33
+ const productVersions = productObj.hasComponentsInsteadOfVersions
34
+ ? productObj.versions.sort()
35
+ : productObj.versions;
36
+ // if versions array has one value set that value as selected
37
+ if (productVersions.length === 1) {
38
+ props.onVersionChange(productVersions[0]);
39
+ }
40
+ setSelectVersionOptions(productObj.versions);
32
41
  }
42
+ else {
43
+ setIsSEProductApiIsDown(true);
44
+ }
45
+ const getVersions = () => getVersionsDetails(caseDispatch, product);
46
+ // call sfdc version api version flags that is used in severity and submit components
47
+ getVersions();
33
48
  // eslint-disable-next-line react-hooks/exhaustive-deps
34
49
  }, [product]);
35
50
  useEffect(() => {
36
- var _a;
37
- if (versionsDetails.isFetching || !((_a = versionsDetails.data) === null || _a === void 0 ? void 0 : _a.length))
51
+ if (!product)
52
+ return;
53
+ const productObj = getProductObj(allProducts.data.productsResult, product);
54
+ if (productObj.versions) {
55
+ const productVersions = productObj.hasComponentsInsteadOfVersions
56
+ ? productObj.versions.sort()
57
+ : productObj.versions;
58
+ setSelectVersionOptions(productVersions);
59
+ }
60
+ else {
61
+ setIsSEProductApiIsDown(true);
62
+ }
63
+ // eslint-disable-next-line react-hooks/exhaustive-deps
64
+ }, [version]);
65
+ // observe when fetched versions are available
66
+ useEffect(() => {
67
+ if (!isSEProductApiIsDown)
38
68
  return;
39
- if (versionsDetails.data.length === 1) {
40
- props.onVersionChange(versionsDetails.data[0].name);
41
- setCaseState(caseDispatch, { selectedVersionId: versionsDetails.data[0].id });
69
+ const fetchedVersions = versionsDetails.data.map(({ name }) => name);
70
+ // if versions array has one value set that value as selected
71
+ if (fetchedVersions.length === 1) {
72
+ props.onVersionChange(fetchedVersions[0]);
42
73
  }
74
+ const productObj = getProductObj(allProducts.data.productsResult, product);
75
+ const sfdcVersions = getUniqueSortedVersions(fetchedVersions);
76
+ const productVersions = (productObj === null || productObj === void 0 ? void 0 : productObj.hasComponentsInsteadOfVersions) ? sfdcVersions.sort() : sfdcVersions;
77
+ setSelectVersionOptions(productVersions);
43
78
  // eslint-disable-next-line react-hooks/exhaustive-deps
44
- }, [versionsDetails.data]);
79
+ }, [versionsDetails.data, isSEProductApiIsDown]);
45
80
  const onSelect = (selectedOption) => {
46
81
  const selection = selectedOption.value;
47
82
  if (isEqual(selection, version)) {
48
- props.onVersionChange('');
49
- setCaseState(caseDispatch, { selectedVersionId: undefined });
83
+ props.onVersionChange(''); // To unselect a version when user clicks on the same selected product version
50
84
  return;
51
85
  }
52
86
  props.onVersionChange(selection);
53
- const versionObj = versionsDetails.data.find((v) => v.name === selection);
54
- setCaseState(caseDispatch, { selectedVersionId: versionObj === null || versionObj === void 0 ? void 0 : versionObj.id });
55
87
  };
88
+ // Create selected option for SingleSelectDropdown
56
89
  const getSelectedOption = () => ({
57
90
  label: version || '',
58
91
  value: version || '',
59
92
  });
60
- const getDropdownOptions = () => versionsDetails.data.map((v) => ({
61
- label: v.name,
62
- value: v.name,
93
+ // Create options array for SingleSelectDropdown
94
+ const getDropdownOptions = () => selectVersionOptions.map((versionOption) => ({
95
+ label: versionOption,
96
+ value: versionOption,
63
97
  }));
64
- return (React.createElement(SingleSelectDropdown, { onSelect: onSelect, selected: getSelectedOption(), options: getDropdownOptions(), placeholder: t('Select a version'), ariaLabel: t('Select a version'), isInvalid: isEmpty(version) && showValidationLocal, isDisabled: isEmpty(product) || allProducts.isFetching, dataTrackingId: "get-support-version-dropdown-selector", isLoading: versionsDetails.isFetching }));
98
+ return (React.createElement(SingleSelectDropdown, { onSelect: onSelect, selected: getSelectedOption(), options: getDropdownOptions(), placeholder: t('Select a version'), ariaLabel: t('Select a version'), isInvalid: isEmpty(version) && showValidationLocal, isDisabled: isEmpty(product) || allProducts.isFetching, dataTrackingId: "get-support-version-dropdown-selector", isLoading: isSEProductApiIsDown && versionsDetails.isFetching }));
65
99
  };
@@ -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;AAMvD,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,qBAiGpD"}
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"}
@@ -7,6 +7,7 @@ import isEqual from 'lodash/isEqual';
7
7
  import React, { useContext, useEffect, useRef } from 'react';
8
8
  import { Trans, useTranslation } from 'react-i18next';
9
9
  import { useCaseDispatch, useCaseSelector } from '../../context/CaseContext';
10
+ import { RouteContext } from '../../context/RouteContext';
10
11
  import { useAB } from '../../hooks/useAB';
11
12
  import { useFetchCVEData } from '../../hooks/useFetchCVEData';
12
13
  import { setCaseState } from '../../reducers/CaseReducer';
@@ -30,6 +31,7 @@ export default function ProductSelector(props) {
30
31
  product: state.caseDetails.product,
31
32
  version: state.caseDetails.version,
32
33
  }), isEqual);
34
+ const { routeState: { isCaseCreate }, } = useContext(RouteContext);
33
35
  const caseDispatch = useCaseDispatch();
34
36
  const cveModalEnabledConfig = getConfigField(pcmConfig.data, 'isCVEModalEnabled', PCM_CONFIG_FIELD_TYPE.STRING);
35
37
  const isCVEModalEnabled = cveModalEnabledConfig === '1';
@@ -49,7 +51,7 @@ export default function ProductSelector(props) {
49
51
  const productSelectorRef = useRef(null);
50
52
  const rederProductSelect = (React.createElement("form", null,
51
53
  (cveRecommendation === null || cveRecommendation === void 0 ? void 0 : cveRecommendation.length) !== 0 && isCVEModalEnabled && React.createElement(CveModal, null),
52
- React.createElement(AllProductsSelector, { routeProps: props.routeProps, ref: productSelectorRef, isOnSummaryPage: true, isOnGetSupportPage: props === null || props === void 0 ? void 0 : props.isOnGetSupportPage, caseCreateExperience: props.caseCreateExperience })));
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 })));
53
55
  return (React.createElement(React.Fragment, null,
54
56
  React.createElement(AlertMessage, { variant: AlertType.DANGER, className: "pf-v6-u-mt-lg", title: t('There was an error loading products.'), show: allProducts.isError }),
55
57
  rederProductSelect,
@@ -1 +1 @@
1
- {"version":3,"file":"Review.d.ts","sourceRoot":"","sources":["../../../../src/components/Review/Review.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAwC,MAAM,OAAO,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAIvD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAoBlE,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;CACpD;AACD,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,KAAK,EAAE,MAAM,qBA0F3C"}
1
+ {"version":3,"file":"Review.d.ts","sourceRoot":"","sources":["../../../../src/components/Review/Review.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAwC,MAAM,OAAO,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAIvD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAoBlE,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;CACpD;AACD,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,KAAK,EAAE,MAAM,qBAqF3C"}
@@ -8,7 +8,7 @@ import { useCaseDispatch, useCaseSelector } from '../../context/CaseContext';
8
8
  import { setCaseDetails } from '../../reducers/CaseReducer';
9
9
  import { AccountSelector } from '../AccountInfo/AccountSelector';
10
10
  import { OwnerSelector } from '../AccountInfo/OwnerSelector';
11
- // import CaseGroup from '../CaseInformation/CaseGroup';
11
+ import CaseGroup from '../CaseInformation/CaseGroup';
12
12
  import CaseType from '../CaseInformation/CaseType';
13
13
  import { ContactPhoneNumber } from '../CaseInformation/ContactPhoneNumber';
14
14
  import { ContactPhoneNumberAlert } from '../CaseInformation/ContactPhoneNumberAlert';
@@ -16,12 +16,12 @@ import Fts from '../CaseInformation/Fts';
16
16
  import Severity from '../CaseInformation/Severity';
17
17
  import SupportLevel from '../CaseInformation/SupportLevel';
18
18
  import CaseLanguageSelector from '../CaseManagement/CaseLanguageSelector';
19
- // import { Cep } from '../CaseManagement/Cep';
19
+ import { Cep } from '../CaseManagement/Cep';
20
20
  import OpenReferenceNumber from '../CaseManagement/OpenReferenceNumber';
21
21
  import { OpenShiftClusterId } from '../CaseManagement/OpenShiftClusterId';
22
22
  import { RHAssociatesSelector } from '../CaseManagement/RHAssociatesSelector';
23
23
  import CaseContactSelector from '../CaseManagement/SendNotifications/CaseContactSelector';
24
- // import { Hostname } from '../ImproveCase/Hostname';
24
+ import { Hostname } from '../ImproveCase/Hostname';
25
25
  import KtQuestions from '../ImproveCase/KtQuestions';
26
26
  import { AllProductsSelector } from '../ProductSelector/AllProductsSelector';
27
27
  export default function Review(props) {
@@ -50,8 +50,9 @@ export default function Review(props) {
50
50
  React.createElement("form", { className: "review-form card card-light push-bottom" },
51
51
  React.createElement(AccountSelector, null),
52
52
  React.createElement(OwnerSelector, null),
53
- React.createElement(AllProductsSelector, { routeProps: props.routeProps, loadTCOnChange: true, showTCAfterButtonClicked: true, isOnReviewPage: true }),
53
+ React.createElement(AllProductsSelector, { routeProps: props.routeProps, loadTCOnChange: true, showTCAfterButtonClicked: true, checkEntitledProduct: true, isOnReviewPage: true }),
54
54
  React.createElement(OpenShiftClusterId, null),
55
+ caseType !== PreviousCaseTypes.FEATURE_ENHANCEMENT && React.createElement(Hostname, null),
55
56
  React.createElement(KtQuestions, { inlineEditable: true, hideSaveCancel: true, onlyShowKT4: caseType === PreviousCaseTypes.FEATURE_ENHANCEMENT }),
56
57
  React.createElement(CaseType, null),
57
58
  React.createElement(SupportLevel, null),
@@ -64,8 +65,11 @@ export default function Review(props) {
64
65
  React.createElement(Fts, { inlineEditable: true, initialIsEditing: isEmpty(contactInfo24x7), hideSaveCancel: true }),
65
66
  React.createElement(Grid, { hasGutter: true },
66
67
  React.createElement(GridItem, { span: 12, xl2: 6, className: "pf-v6-u-mb-xs" },
67
- React.createElement(CaseLanguageSelector, null))),
68
+ React.createElement(CaseLanguageSelector, null)),
69
+ React.createElement(GridItem, { span: 12, xl2: 6, className: "pf-v6-u-mb-xs" },
70
+ React.createElement(CaseGroup, null))),
68
71
  canSeeEmailNotifications && React.createElement(CaseContactSelector, null),
69
72
  React.createElement(RHAssociatesSelector, null),
70
- React.createElement(OpenReferenceNumber, { inlineEditable: false, hideSaveCancel: true }))));
73
+ React.createElement(OpenReferenceNumber, { inlineEditable: false, hideSaveCancel: true }),
74
+ React.createElement(Cep, null))));
71
75
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SessionRestore.d.ts","sourceRoot":"","sources":["../../../../src/components/SessionRestore/SessionRestore.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAgC,YAAY,EAAE,MAAM,qDAAqD,CAAC;AAQjH,OAAO,KAAkD,MAAM,OAAO,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAQvD,OAAO,EAGH,eAAe,EAElB,MAAM,iCAAiC,CAAC;AAmBzC,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;CACpD;AAED,eAAO,MAAM,6BAA6B,GAAI,aAAa,YAAY,GAAG,SAAS,EAAE,uBAAuB,MAAM,YAKjH,CAAC;AAEF,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,qBAmX3C"}
1
+ {"version":3,"file":"SessionRestore.d.ts","sourceRoot":"","sources":["../../../../src/components/SessionRestore/SessionRestore.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAgC,YAAY,EAAE,MAAM,qDAAqD,CAAC;AAQjH,OAAO,KAAkD,MAAM,OAAO,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAQvD,OAAO,EAGH,eAAe,EAElB,MAAM,iCAAiC,CAAC;AAmBzC,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;CACpD;AAED,eAAO,MAAM,6BAA6B,GAAI,aAAa,YAAY,GAAG,SAAS,EAAE,uBAAuB,MAAM,YAKjH,CAAC;AAEF,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,qBAiX3C"}
@@ -8,7 +8,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  });
9
9
  };
10
10
  /* eslint-disable @typescript-eslint/no-unused-vars */
11
- import { useApolloClient } from '@apollo/client/react';
12
11
  import { pcm } from '@cee-eng/hydrajs';
13
12
  import { useDebounce, useDeepCompareDebounce, usePrevious } from '@rh-support/components';
14
13
  import { GlobalMetadataStateContext } from '@rh-support/react-context';
@@ -44,7 +43,6 @@ export const isSessionFromCurrentAuthCycle = (sessionItem, currentLoginStartTime
44
43
  };
45
44
  export function SessionRestore(props) {
46
45
  var _a;
47
- const apolloClient = useApolloClient();
48
46
  const sessionRestoreDispatch = useContext(SessionRestoreDispatchContext);
49
47
  const dispatchToAttachmentReducer = useContext(AttachmentDispatchContext);
50
48
  const { sessionRestore } = useContext(SessionRestoreStateContext);
@@ -244,7 +242,7 @@ export function SessionRestore(props) {
244
242
  const reg = new RegExp('Cluster Name: (.*) ');
245
243
  const v3ClusterName = reg.exec(sessionDetails.description) ? reg.exec(sessionDetails.description)[1] : '';
246
244
  setCaseState(caseDispatch, { v3ClusterName });
247
- yield updateCaseWithSession(caseDispatch, sessionItem, loggedInUserRights.data.getAccountNumber(), loggedInUserRights.data.getHydraContactFromLoggedInUser(), loggedInUsersAccount.data, apolloClient);
245
+ yield updateCaseWithSession(caseDispatch, sessionItem, loggedInUserRights.data.getAccountNumber(), loggedInUserRights.data.getHydraContactFromLoggedInUser(), loggedInUsersAccount.data);
248
246
  if (!isAISureSession(sessionItem)) {
249
247
  restoreFilesFromSession(dispatchToAttachmentReducer, sessionItem.session.id);
250
248
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useIsSectionValid.d.ts","sourceRoot":"","sources":["../../../../src/components/shared/useIsSectionValid.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAyB1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAKnE,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,gBAAgB;;;;;EAuQ9D"}
1
+ {"version":3,"file":"useIsSectionValid.d.ts","sourceRoot":"","sources":["../../../../src/components/shared/useIsSectionValid.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAuB/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAMnE,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,gBAAgB;;;;;EAkR9D"}
@@ -1,23 +1,32 @@
1
- // import { contacts } from '@cee-eng/hydrajs';
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { contacts } from '@cee-eng/hydrajs';
2
11
  import { GlobalMetadataStateContext } from '@rh-support/react-context';
3
- // import find from 'lodash/find';
12
+ import find from 'lodash/find';
4
13
  import isEmpty from 'lodash/isEmpty';
5
14
  import isEqual from 'lodash/isEqual';
6
- import React, { useContext } from 'react';
7
- // import React, { useContext, useEffect, useState } from 'react';
15
+ import React, { useContext, useEffect, useState } from 'react';
8
16
  import { Trans } from 'react-i18next';
9
17
  import { useCaseSelector } from '../../context/CaseContext';
10
- import { RouteContext } from '../../context/RouteContext';
11
- // import { RouteContext, useRouteDispatchContext } from '../../context/RouteContext';
18
+ import { RouteContext, useRouteDispatchContext } from '../../context/RouteContext';
12
19
  import { TCStateContext } from '../../context/TopContentContext';
13
20
  import { useAB } from '../../hooks/useAB';
14
21
  import { CASE_DEATILS_ENVIRONMENT_LIMIT, CASE_REFERENCE_NUMBER_LIMIT, CONTACT_INFO_24X7_LIMIT, HOSTNAME_LENGTH_LIMIT, ISSUE_SUMMARY_LENGTH_LIMIT, KTQUESTION_MAX_LIMIT, TITLE_SUMMARY_LENGTH_LIMIT, } from '../../reducers/CaseConstNTypes';
15
22
  import { isCaseInformationSectionValid, isCaseManagementStateValid, isCaseStateValid, isClusterIDValid, isIdeaCaseStateValid, } from '../../reducers/CaseHelpers';
16
23
  import { AppRouteSections } from '../../reducers/RouteConstNTypes';
24
+ import { setNoValidEntitlement } from '../../reducers/RouteReducer';
17
25
  import { AttachmentStateContext } from './fileUpload/reducer/AttachmentReducerContext';
18
26
  export function useIsSectionValid(sectionName) {
27
+ var _a, _b;
19
28
  const { isVariationA } = useAB();
20
- const { caseState, caseType, product, version, contactSSOName, accountNumber, summary, hostname, contactInfo24x7, alternateId, selectedAccountDetails, issue, environment, timeFramesAndUrgency, periodicityOfIssue, manageSupportCases, } = useCaseSelector((state) => ({
29
+ const { caseState, caseType, product, version, contactSSOName, accountNumber, summary, hostname, contactInfo24x7, alternateId, selectedAccountDetails, issue, environment, timeFramesAndUrgency, periodicityOfIssue, ssoUsername, manageSupportCases, } = useCaseSelector((state) => ({
21
30
  caseState: state,
22
31
  caseType: state.caseDetails.caseType,
23
32
  product: state.caseDetails.product,
@@ -33,38 +42,35 @@ export function useIsSectionValid(sectionName) {
33
42
  environment: state.caseDetails.environment,
34
43
  timeFramesAndUrgency: state.caseDetails.timeFramesAndUrgency,
35
44
  periodicityOfIssue: state.caseDetails.periodicityOfIssue,
36
- // ssoUsername: state.selectedOwner.data.ssoUsername,
45
+ ssoUsername: state.selectedOwner.data.ssoUsername,
37
46
  manageSupportCases: state.selectedOwner.data.manageSupportCases,
38
47
  }), isEqual);
39
- // const routeDispatch = useRouteDispatchContext();
40
- // const [isEntitlement, setIsEntitlement] = useState<boolean | null>(null);
41
- // useEffect(() => {
42
- // const fetchContactDetails = async () => {
43
- // if (ssoUsername) {
44
- // try {
45
- // const response = await contacts.getSFDCContactBySso(ssoUsername);
46
- // setIsEntitlement(response?.isEntitled ?? null);
47
- // setNoValidEntitlement(routeDispatch, !response?.isEntitled);
48
- // } catch (error) {
49
- // console.error('Error fetching contact details:', error);
50
- // setIsEntitlement(null);
51
- // setNoValidEntitlement(routeDispatch, null);
52
- // }
53
- // }
54
- // };
55
- // fetchContactDetails();
56
- // }, [ssoUsername, routeDispatch]);
57
- // Contact-level entitlement hardcoded to true — now resolved from SFDCProductJSON__c
58
- const isEntitlement = true;
48
+ const routeDispatch = useRouteDispatchContext();
49
+ const [isEntitlement, setIsEntitlement] = useState(null);
50
+ useEffect(() => {
51
+ const fetchContactDetails = () => __awaiter(this, void 0, void 0, function* () {
52
+ var _a;
53
+ if (ssoUsername) {
54
+ try {
55
+ const response = yield contacts.getSFDCContactBySso(ssoUsername);
56
+ setIsEntitlement((_a = response === null || response === void 0 ? void 0 : response.isEntitled) !== null && _a !== void 0 ? _a : null);
57
+ setNoValidEntitlement(routeDispatch, !(response === null || response === void 0 ? void 0 : response.isEntitled));
58
+ }
59
+ catch (error) {
60
+ console.error('Error fetching contact details:', error);
61
+ setIsEntitlement(null);
62
+ setNoValidEntitlement(routeDispatch, null);
63
+ }
64
+ }
65
+ });
66
+ fetchContactDetails();
67
+ }, [ssoUsername, routeDispatch]);
68
+ //&seSessionId=8e8960ac-680b-443e-bf67-9e13f2acd64e
59
69
  const { routeState: { isCaseCreate }, } = useContext(RouteContext);
60
70
  const { globalMetadataState: { allProducts, loggedInUserRights }, } = useContext(GlobalMetadataStateContext);
61
71
  const { topContentState: { topContent }, } = useContext(TCStateContext);
62
- // isEntitledProduct commented out; product-level entitlement now resolved from SFDCProductJSON__c
63
- // const isEntitledProduct = find(
64
- // allProducts?.data?.productsResult,
65
- // (p) => p.product === caseState.caseDetails.product
66
- // )?.isEntitledProduct;
67
- const { routeState: { activeSection }, } = useContext(RouteContext);
72
+ const isEntitledProduct = (_b = find((_a = allProducts === null || allProducts === void 0 ? void 0 : allProducts.data) === null || _a === void 0 ? void 0 : _a.productsResult, (p) => p.product === caseState.caseDetails.product)) === null || _b === void 0 ? void 0 : _b.isEntitledProduct;
73
+ const { routeState: { activeSection, isSearchIntent }, } = useContext(RouteContext);
68
74
  const { attachmentState } = useContext(AttachmentStateContext);
69
75
  const selectedLocalFiles = attachmentState.caseFiles.selectedLocalFiles;
70
76
  const allowedTypesIdea = ['image/jpeg', 'image/png', 'image/jpg', 'image/gif'];
@@ -105,6 +111,8 @@ export function useIsSectionValid(sectionName) {
105
111
  }
106
112
  return (!isEmpty(product) &&
107
113
  !isEmpty(version) &&
114
+ !isEmpty(accountNumber) &&
115
+ !isEmpty(contactSSOName) &&
108
116
  !isEmpty(summary) &&
109
117
  (summary === null || summary === void 0 ? void 0 : summary.length) <= TITLE_SUMMARY_LENGTH_LIMIT &&
110
118
  !isEmpty(issue) &&
@@ -121,22 +129,23 @@ export function useIsSectionValid(sectionName) {
121
129
  };
122
130
  const isResourcesSectionValid = () => {
123
131
  var _a;
124
- // isEntitledProduct check removed product-level entitlement now resolved from SFDCProductJSON__c
132
+ // don't check for entitled product if user is on search intent flow
133
+ const isEntitledProductLocal = isSearchIntent ? true : isEntitledProduct;
134
+ // Skip cluster ID validation for Variant A
125
135
  const clusterIdValid = isVariationA ? true : isClusterIDValid(caseState, (_a = allProducts.data) === null || _a === void 0 ? void 0 : _a.productsResult);
126
- return clusterIdValid;
136
+ return isEntitledProductLocal && clusterIdValid;
127
137
  };
128
138
  const isReviewSectionValid = () => {
129
139
  var _a;
130
- return (
131
- // isEntitledProduct — product-level entitlement now resolved from SFDCProductJSON__c
132
- isCaseStateValid(caseState, loggedInUserRights) &&
140
+ return (isEntitledProduct &&
141
+ isCaseStateValid(caseState, loggedInUserRights) &&
133
142
  isClusterIDValid(caseState, (_a = allProducts.data) === null || _a === void 0 ? void 0 : _a.productsResult) &&
134
143
  isSummarizeSectionValid() &&
135
144
  isAdditionalInformationSectionValidLocal());
136
145
  };
137
146
  const isDescribeIdeaSectionValid = () => {
138
147
  return (isCaseManagementStateValid(caseState, loggedInUserRights) &&
139
- // isEntitledProduct — product-level entitlement now resolved from SFDCProductJSON__c
148
+ isEntitledProduct &&
140
149
  isIdeaCaseStateValid(caseState, loggedInUserRights) &&
141
150
  checkUnallowedFiles());
142
151
  };
@@ -176,8 +185,14 @@ export function useIsSectionValid(sectionName) {
176
185
  }
177
186
  };
178
187
  const recommendationSectionError = () => {
179
- // isEntitledProduct check removed — product-level entitlement now resolved from SFDCProductJSON__c
180
- return '';
188
+ if (!product)
189
+ return '';
190
+ const isEntitledProductLocal = isSearchIntent ? true : isEntitledProduct;
191
+ return !isEntitledProductLocal ? (React.createElement(Trans, { i18nKey: "i18ValidEntitlementContactCustomerService" },
192
+ "You need a valid entitlement to create a case.\u00A0 Please contact",
193
+ ' ',
194
+ React.createElement("a", { href: "/support/contact/customerService" }, "Customer Service"),
195
+ " for assistance.")) : ('');
181
196
  };
182
197
  const getSupportSectionError = () => {
183
198
  if (manageSupportCases === false) {
@@ -187,14 +202,13 @@ export function useIsSectionValid(sectionName) {
187
202
  React.createElement("a", { href: "/support/contact/customerService" }, "Customer Service"),
188
203
  " for assistance."));
189
204
  }
190
- // if (isEntitlement === false) {
191
- // return (
192
- // <Trans i18nKey="i18ValidEntitlementContactCustomerService">
193
- // You need a valid entitlement to create a case.&nbsp; Please contact{' '}
194
- // <a href="/support/contact/customerService">Customer Service</a> for assistance.
195
- // </Trans>
196
- // );
197
- // }
205
+ if (isEntitlement === false) {
206
+ return (React.createElement(Trans, { i18nKey: "i18ValidEntitlementContactCustomerService" },
207
+ "You need a valid entitlement to create a case.\u00A0 Please contact",
208
+ ' ',
209
+ React.createElement("a", { href: "/support/contact/customerService" }, "Customer Service"),
210
+ " for assistance."));
211
+ }
198
212
  return '';
199
213
  };
200
214
  const activeSectionError = (sectionNameLocal) => {
@@ -1 +1 @@
1
- {"version":3,"file":"GlobalTroubleshootEffects.d.ts","sourceRoot":"","sources":["../../../../src/components/wizardLayout/GlobalTroubleshootEffects.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAkD,MAAM,OAAO,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAWvD,OAAO,EAAuC,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAYvG,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;CACpD;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,qBA2VtD"}
1
+ {"version":3,"file":"GlobalTroubleshootEffects.d.ts","sourceRoot":"","sources":["../../../../src/components/wizardLayout/GlobalTroubleshootEffects.tsx"],"names":[],"mappings":"AASA,OAAO,KAAkD,MAAM,OAAO,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAWvD,OAAO,EAAuC,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAYvG,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;CACpD;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,qBAuTtD"}