@rh-support/troubleshoot 2.6.27 → 2.6.28

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 (121) hide show
  1. package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/ActiveCustomerEscalation.d.ts +0 -1
  2. package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/ActiveCustomerEscalation.d.ts.map +1 -1
  3. package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/ActiveCustomerEscalation.js +5 -31
  4. package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/RequestEscalationModal.d.ts.map +1 -1
  5. package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/RequestEscalationModal.js +34 -33
  6. package/lib/esm/components/CaseEditView/CaseDetailsAside.d.ts.map +1 -1
  7. package/lib/esm/components/CaseEditView/CaseDetailsAside.js +1 -2
  8. package/lib/esm/components/CaseEditView/CaseDetailsTabs.d.ts.map +1 -1
  9. package/lib/esm/components/CaseEditView/CaseDetailsTabs.js +0 -1
  10. package/lib/esm/components/CaseEditView/CaseSolutions/CaseSolutionsItem.js +1 -1
  11. package/lib/esm/components/CaseEditView/ConfirmationModals/ReopenCaseModal.d.ts.map +1 -1
  12. package/lib/esm/components/CaseEditView/ConfirmationModals/ReopenCaseModal.js +22 -16
  13. package/lib/esm/components/CaseEditView/RequestRemoteSession/ESSRemoteSession.js +1 -1
  14. package/lib/esm/components/CaseEditView/RequestRemoteSession/NewEssTermsModal.d.ts.map +1 -1
  15. package/lib/esm/components/CaseEditView/RequestRemoteSession/NewEssTermsModal.js +102 -53
  16. package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreementModal.d.ts.map +1 -1
  17. package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreementModal.js +20 -22
  18. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseHostname.js +2 -4
  19. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CasePhoneNumberConfirmAlert.d.ts.map +1 -1
  20. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CasePhoneNumberConfirmAlert.js +5 -8
  21. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/VerifyCaseStatusModal/VerifyCaseStatusModal.d.ts.map +1 -1
  22. package/lib/esm/components/CaseEditView/Tabs/CaseDiscussion/VerifyCaseStatusModal/VerifyCaseStatusModal.js +9 -7
  23. package/lib/esm/components/CaseEditView/Tabs/CaseHistory/Timeline.css +8 -0
  24. package/lib/esm/components/CaseInformation/Fts.d.ts.map +1 -1
  25. package/lib/esm/components/CaseInformation/Fts.js +2 -6
  26. package/lib/esm/components/CaseInformation/Severity.js +1 -1
  27. package/lib/esm/components/CaseInformation/SupportLevel.d.ts.map +1 -1
  28. package/lib/esm/components/CaseInformation/SupportLevel.js +1 -1
  29. package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.d.ts.map +1 -1
  30. package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.js +13 -1
  31. package/lib/esm/components/CaseManagement/RHAssociatesSelector.d.ts.map +1 -1
  32. package/lib/esm/components/CaseManagement/RHAssociatesSelector.js +8 -5
  33. package/lib/esm/components/CaseManagement/SendNotifications/CaseContactSelector.d.ts.map +1 -1
  34. package/lib/esm/components/CaseManagement/SendNotifications/CaseContactSelector.js +7 -7
  35. package/lib/esm/components/CaseManagement/SendNotifications/NonOrgCaseNotifyeesSelector.d.ts.map +1 -1
  36. package/lib/esm/components/CaseManagement/SendNotifications/NonOrgCaseNotifyeesSelector.js +1 -1
  37. package/lib/esm/components/Cve/CveModal.d.ts.map +1 -1
  38. package/lib/esm/components/Cve/CveModal.js +3 -2
  39. package/lib/esm/components/Cve/CveSidebar.js +1 -1
  40. package/lib/esm/components/OpenCase/SupportTypeSelectorPage.js +1 -1
  41. package/lib/esm/components/ProductSelector/AllProductsSelector.d.ts.map +1 -1
  42. package/lib/esm/components/ProductSelector/AllProductsSelector.js +9 -6
  43. package/lib/esm/components/ProductSelector/NewProductDropdownSelector.d.ts.map +1 -1
  44. package/lib/esm/components/ProductSelector/NewProductDropdownSelector.js +10 -1
  45. package/lib/esm/components/Recommendations/AsideResults.d.ts.map +1 -1
  46. package/lib/esm/components/Recommendations/AsideResults.js +2 -2
  47. package/lib/esm/components/Recommendations/ClusterRecommendationsModal.d.ts.map +1 -1
  48. package/lib/esm/components/Recommendations/ClusterRecommendationsModal.js +7 -4
  49. package/lib/esm/components/Recommendations/EARules/EARuleInfoAccordion.d.ts.map +1 -1
  50. package/lib/esm/components/Recommendations/EARules/EARuleInfoAccordion.js +3 -1
  51. package/lib/esm/components/Recommendations/InsightsResults.js +1 -1
  52. package/lib/esm/components/Recommendations/InsightsRuleInfo.d.ts.map +1 -1
  53. package/lib/esm/components/Recommendations/InsightsRuleInfo.js +9 -2
  54. package/lib/esm/components/Recommendations/RecommendationFeedbackModal.d.ts.map +1 -1
  55. package/lib/esm/components/Recommendations/RecommendationFeedbackModal.js +4 -4
  56. package/lib/esm/components/Recommendations/Recommendations.js +1 -1
  57. package/lib/esm/components/Recommendations/RulesModal.d.ts.map +1 -1
  58. package/lib/esm/components/Recommendations/RulesModal.js +7 -4
  59. package/lib/esm/components/Recommendations/WatsonxAiIcon.js +1 -1
  60. package/lib/esm/components/SessionRestore/SessionRestore.js +1 -1
  61. package/lib/esm/components/Suggestions/Suggestions.d.ts.map +1 -1
  62. package/lib/esm/components/Suggestions/Suggestions.js +17 -12
  63. package/lib/esm/components/Suggestions/TopContent.d.ts.map +1 -1
  64. package/lib/esm/components/Suggestions/TopContent.js +13 -13
  65. package/lib/esm/components/TroubleshootSection/TroubleshootSection.d.ts +0 -7
  66. package/lib/esm/components/TroubleshootSection/TroubleshootSection.d.ts.map +1 -1
  67. package/lib/esm/components/TroubleshootSection/TroubleshootSection.js +13 -96
  68. package/lib/esm/components/shared/fileUpload/WidgetFileUploader.js +3 -3
  69. package/lib/esm/components/shared/fileUpload/css/fileSelector.css +1 -0
  70. package/lib/esm/components/shared/input/ContactSelectorInternal.d.ts +1 -0
  71. package/lib/esm/components/shared/input/ContactSelectorInternal.d.ts.map +1 -1
  72. package/lib/esm/components/shared/input/ContactSelectorInternal.js +6 -1
  73. package/lib/esm/components/shared/useIsSectionValid.d.ts.map +1 -1
  74. package/lib/esm/components/shared/useIsSectionValid.js +7 -1
  75. package/lib/esm/components/wizardLayout/GlobalTroubleshootEffects.d.ts.map +1 -1
  76. package/lib/esm/components/wizardLayout/GlobalTroubleshootEffects.js +3 -1
  77. package/lib/esm/components/wizardLayout/WizardAside.js +3 -3
  78. package/lib/esm/components/wizardLayout/WizardLayout.d.ts.map +1 -1
  79. package/lib/esm/components/wizardLayout/WizardLayout.js +4 -6
  80. package/lib/esm/components/wizardLayout/WizardMain.d.ts +1 -5
  81. package/lib/esm/components/wizardLayout/WizardMain.d.ts.map +1 -1
  82. package/lib/esm/components/wizardLayout/WizardMain.js +18 -147
  83. package/lib/esm/components/wizardLayout/WizardNavigation.d.ts +2 -4
  84. package/lib/esm/components/wizardLayout/WizardNavigation.d.ts.map +1 -1
  85. package/lib/esm/components/wizardLayout/WizardNavigation.js +16 -13
  86. package/lib/esm/components/wizardLayout/index.d.ts +0 -1
  87. package/lib/esm/components/wizardLayout/index.d.ts.map +1 -1
  88. package/lib/esm/components/wizardLayout/index.js +0 -1
  89. package/lib/esm/context/RootTroubleshootProvider.d.ts.map +1 -1
  90. package/lib/esm/context/RootTroubleshootProvider.js +6 -8
  91. package/lib/esm/css/app.css +5 -4
  92. package/lib/esm/css/case.css +12 -0
  93. package/lib/esm/css/results.css +2 -2
  94. package/lib/esm/hooks/useWizard.d.ts +0 -6
  95. package/lib/esm/hooks/useWizard.d.ts.map +1 -1
  96. package/lib/esm/hooks/useWizard.js +1 -1
  97. package/lib/esm/reducers/CaseConstNTypes.d.ts +0 -2
  98. package/lib/esm/reducers/CaseConstNTypes.d.ts.map +1 -1
  99. package/lib/esm/reducers/CaseConstNTypes.js +0 -2
  100. package/lib/esm/scss/_main.scss +35 -8
  101. package/lib/esm/scss/_pf-overrides.scss +14 -6
  102. package/package.json +6 -7
  103. package/lib/esm/components/TroubleshootSection/AskRedHat.d.ts +0 -7
  104. package/lib/esm/components/TroubleshootSection/AskRedHat.d.ts.map +0 -1
  105. package/lib/esm/components/TroubleshootSection/AskRedHat.js +0 -73
  106. package/lib/esm/components/TroubleshootSection/icons/CollapseIcon.d.ts +0 -9
  107. package/lib/esm/components/TroubleshootSection/icons/CollapseIcon.d.ts.map +0 -1
  108. package/lib/esm/components/TroubleshootSection/icons/CollapseIcon.js +0 -9
  109. package/lib/esm/components/TroubleshootSection/icons/StarIcon.d.ts +0 -9
  110. package/lib/esm/components/TroubleshootSection/icons/StarIcon.d.ts.map +0 -1
  111. package/lib/esm/components/TroubleshootSection/icons/StarIcon.js +0 -17
  112. package/lib/esm/context/AIResponseContext.d.ts +0 -10
  113. package/lib/esm/context/AIResponseContext.d.ts.map +0 -1
  114. package/lib/esm/context/AIResponseContext.js +0 -26
  115. package/lib/esm/css/AskRedHat.css +0 -338
  116. package/lib/esm/reducers/AIResponseConstNTypes.d.ts +0 -48
  117. package/lib/esm/reducers/AIResponseConstNTypes.d.ts.map +0 -1
  118. package/lib/esm/reducers/AIResponseConstNTypes.js +0 -16
  119. package/lib/esm/reducers/AIResponseReducer.d.ts +0 -9
  120. package/lib/esm/reducers/AIResponseReducer.d.ts.map +0 -1
  121. package/lib/esm/reducers/AIResponseReducer.js +0 -43
@@ -8,7 +8,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  });
9
9
  };
10
10
  import { publicApi } from '@cee-eng/hydrajs';
11
- import { Alert, Button, ButtonVariant, Checkbox, Modal, ModalFooter, TextArea, TextInput, } from '@patternfly/react-core';
11
+ import { Alert, Button, ButtonVariant, Checkbox, Modal, ModalBody, ModalFooter, ModalHeader, TextArea, TextInput, } from '@patternfly/react-core';
12
12
  import DownloadIcon from '@patternfly/react-icons/dist/js/icons/download-icon';
13
13
  import ExternalLinkAltIcon from '@patternfly/react-icons/dist/js/icons/external-link-alt-icon';
14
14
  import { SingleSelectDropdown, ToastNotification, useFetch } from '@rh-support/components';
@@ -64,16 +64,18 @@ export function RemoteSessionAgreementModal(props) {
64
64
  try {
65
65
  const { siteCode, eventCode, loggedInUser } = props;
66
66
  const response = yield request(siteCode, eventCode, loggedInUser);
67
- let defaultTranslation = response[0].translations[0];
68
- const translationLangInfoMap = response[0].translations.reduce((allTranslationsmap, translation) => {
69
- if (translation.isDefault) {
70
- defaultTranslation = translation;
71
- }
72
- allTranslationsmap[translation['localeCode']] = translation;
73
- return allTranslationsmap;
74
- }, {});
75
- setSelectedTranslation(defaultTranslation);
76
- setAllTranslations(translationLangInfoMap);
67
+ if (response) {
68
+ let defaultTranslation = response[0].translations[0];
69
+ const translationLangInfoMap = response[0].translations.reduce((allTranslationsmap, translation) => {
70
+ if (translation.isDefault) {
71
+ defaultTranslation = translation;
72
+ }
73
+ allTranslationsmap[translation['localeCode']] = translation;
74
+ return allTranslationsmap;
75
+ }, {});
76
+ setSelectedTranslation(defaultTranslation);
77
+ setAllTranslations(translationLangInfoMap);
78
+ }
77
79
  }
78
80
  catch (e) {
79
81
  console.log(e);
@@ -199,7 +201,7 @@ export function RemoteSessionAgreementModal(props) {
199
201
  React.createElement("p", { className: "pf-v6-u-mt-md" },
200
202
  React.createElement(Trans, null, "Please read and accept the remote session terms below to allow Red Hat to access your network or systems.")),
201
203
  React.createElement("div", { className: "pf-v6-u-display-flex pf-v6-u-align-items-center pf-v6-u-flex-wrap" },
202
- React.createElement(SingleSelectDropdown, { id: "terms-language-selector", ariaLabel: t('Select language'), selected: selectedLanguage, options: languageOptions, isDisabled: false, placeholder: t('Select an option that best fits'), onSelect: (option) => onLangChange(option), className: "pf-v6-u-mt-md", toggleClassName: "pf-v6-u-w-50" }),
204
+ React.createElement(SingleSelectDropdown, { id: "terms-language-selector", ariaLabel: t('Select language'), selected: selectedLanguage, options: languageOptions, isDisabled: false, placeholder: t('Select an option that best fits'), onSelect: (option) => onLangChange(option), toggleClassName: "pf-v6-u-w-50" }),
203
205
  React.createElement("a", { "aria-label": t('Download'), "data-tracking-id": "rsa-modal-terms-download", className: "pf-v6-u-ml-md pf-v6-u-display-inline-flex pf-v6-u-align-items-center", href: selectedTranslation.pdfDownloadUrl, rel: "noopener noreferrer", target: "_blank" },
204
206
  t('Download'),
205
207
  " ",
@@ -213,18 +215,14 @@ export function RemoteSessionAgreementModal(props) {
213
215
  React.createElement(ExternalLinkAltIcon, null))), isChecked: isTermsChecked, "aria-label": t('I have read and agree to the terms'), onChange: onCheckBoxChange }))));
214
216
  // Body of RSA Modal
215
217
  const RemoteSessionAgreementModalBody = () => {
216
- return isRemoteSessionForm || remoteSessionTermsAcked ? renderRemoteSessionForm : renderRemoteSessionAgreement;
218
+ return isRemoteSessionForm ? renderRemoteSessionForm : renderRemoteSessionAgreement;
217
219
  };
218
- return (React.createElement(Modal, { id: "remote-session-agreement-modal", "aria-label": isRemoteSessionForm || remoteSessionTermsAcked
219
- ? t('Request remote session')
220
- : t('Remote session agreement'), title: isRemoteSessionForm || remoteSessionTermsAcked
221
- ? t('Request remote session')
222
- : t('Remote session agreement'), isOpen: props.show, onClose: onCancel },
223
- RemoteSessionAgreementModalBody(),
220
+ return (React.createElement(Modal, { id: "remote-session-agreement-modal", "aria-label": isRemoteSessionForm ? t('Request remote session') : t('Remote session agreement'), isOpen: props.show, onClose: onCancel },
221
+ React.createElement(ModalHeader, null,
222
+ React.createElement("h2", null, isRemoteSessionForm ? t('Request remote session') : t('Remote session agreement'))),
223
+ React.createElement(ModalBody, null, RemoteSessionAgreementModalBody()),
224
224
  React.createElement(ModalFooter, null,
225
- React.createElement(Button, { "aria-label": t('I agree'), variant: ButtonVariant.primary, onClick: isRemoteSessionForm || remoteSessionTermsAcked ? onSubmit : toggleRemoteSessionForm, "data-tracking-id": isRemoteSessionForm || remoteSessionTermsAcked
226
- ? 'remote-session-details-submission'
227
- : 'remote-session-agreement-check', isLoading: isAgreeLoading, isDisabled: (isRemoteSessionForm || remoteSessionTermsAcked
225
+ React.createElement(Button, { "aria-label": t('I agree'), variant: ButtonVariant.primary, onClick: isRemoteSessionForm || remoteSessionTermsAcked ? onSubmit : toggleRemoteSessionForm, "data-tracking-id": "remote-session-agreement-check", isLoading: isAgreeLoading, isDisabled: (isRemoteSessionForm || remoteSessionTermsAcked
228
226
  ? !sessionExpectations.trim() || !impact.trim()
229
227
  : !isTermsChecked) || isAgreeLoading }, t(isRemoteSessionForm || remoteSessionTermsAcked ? 'Submit' : 'I agree')),
230
228
  React.createElement(Button, { key: "cancel", variant: "link", onClick: onCancel, isDisabled: isAgreeLoading }, "Cancel"))));
@@ -103,15 +103,13 @@ function CaseHostname(props) {
103
103
  React.createElement("p", null, "You can share this information at any time to improve your support experience."),
104
104
  React.createElement(Switch, { label: shareHostnameLabel, isChecked: isShareHostNamesChecked, onChange: onShareHostnameCheck }),
105
105
  isHostnamesLoading && (React.createElement(Spinner, { size: "lg", className: "pf-v6-u-ml-sm hostnameSpinner", "aria-label": "Hostname loading" }))));
106
- if (!canUseHostName && canUseHostName) {
106
+ if (!canUseHostName) {
107
107
  return React.createElement(React.Fragment, null);
108
108
  }
109
109
  const lengthError = (hostnameState === null || hostnameState === void 0 ? void 0 : hostnameState.length) > HOSTNAME_LENGTH_LIMIT;
110
110
  return (React.createElement(React.Fragment, null,
111
111
  React.createElement(InlineEdit, { labelProps: { htmlFor: 'case-details-hostname' }, formClassName: props.className || '', labelContent: React.createElement(React.Fragment, null,
112
- React.createElement(Trans, null, "Hostname"),
113
- "*",
114
- ' ',
112
+ React.createElement(Trans, { className: "pf-v6-u-mr-xs" }, "Hostname"),
115
113
  React.createElement(ValueChangedIcon, { afterLocalChange: afterLocalChange, isLocalChange: localHostnameChange, value: hostname, getTooltipContent: getChangedValueTooltip(() => CaseValuesToWatch.hostname) })), helperContent: !isExportingPDF ? (React.createElement(Popover, { "aria-label": "Hostname Info", position: PopoverPosition.auto, bodyContent: hostNameVisibilityContent, closeBtnAriaLabel: "Close", headerContent: 'Share hostname?', onShow: () => userOriginalHostnameValue() },
116
114
  React.createElement(QuestionCircleIcon, { className: "pf-v6-u-ml-sm F icon-size pf-v6-u-text-color-status-custom cursor-pointer", "aria-label": "Hostname Info" }))) : undefined, allowInlineEdit: props.inlineEditable, content: hostname, saveDisabled: hostnameState === hostname || isHostnameUpdating || lengthError, onSave: onSave, onCancel: onCancel, initialIsEditing: false, loadingIndicator: isHostnameUpdating ? React.createElement(LoadingIndicator, { show: isHostnameUpdating, isInline: true }) : undefined, isExportingPDF: isExportingPDF },
117
115
  React.createElement(TextInput, { type: "text", id: "case-details-hostname", className: `${lengthError ? ' form-invalid' : ''}`, name: "case-details-hostname", value: hostnameState, onChange: (e, phone) => onHostnameChange(phone), isDisabled: isHostnameUpdating, "data-tracking-id": "case-details-hostname", "aria-invalid": lengthError })),
@@ -1 +1 @@
1
- {"version":3,"file":"CasePhoneNumberConfirmAlert.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/CaseDetails/CasePhoneNumberConfirmAlert.tsx"],"names":[],"mappings":"AAOA,OAAO,KAA+B,MAAM,OAAO,CAAC;AASpD,UAAU,MAAM;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;CACnD;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,qBAsIxD"}
1
+ {"version":3,"file":"CasePhoneNumberConfirmAlert.d.ts","sourceRoot":"","sources":["../../../../../../src/components/CaseEditView/Tabs/CaseDetails/CasePhoneNumberConfirmAlert.tsx"],"names":[],"mappings":"AAOA,OAAO,KAA+B,MAAM,OAAO,CAAC;AAQpD,UAAU,MAAM;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;CACnD;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,qBAyIxD"}
@@ -15,7 +15,6 @@ import isEmpty from 'lodash/isEmpty';
15
15
  import isEqual from 'lodash/isEqual';
16
16
  import React, { useContext, useState } from 'react';
17
17
  import { Trans, useTranslation } from 'react-i18next';
18
- import { Link } from 'react-router-dom';
19
18
  import { useCaseDispatch, useCaseSelector } from '../../../../context/CaseContext';
20
19
  import { useCaseUpdateErrorMessage } from '../../../../hooks/useCaseUpdateErrorMessage';
21
20
  import { updateCaseDetails } from '../../../../reducers/CaseReducer';
@@ -57,16 +56,14 @@ export function CaseContactPhoneNumberAlert(props) {
57
56
  !isCaseOwnerUpdating;
58
57
  const phone = phoneCountryCode + ' ' + phoneAreaCodePrefixLineNumber;
59
58
  const confirmationMessage = `${t('Is this phone number correct,')} ${phone} ?`;
60
- if (!isPhoneNeedsReview)
59
+ if (!isPhoneNeedsReview && isPhoneNeedsReview)
61
60
  return React.createElement(React.Fragment, null);
62
- return (React.createElement(React.Fragment, null, props.isReview && !closeConfirmAlert && !isExportingPDF ? (React.createElement(Alert, { className: "pf-v6-u-p-sm pf-v6-u-mb-md phone-review-banner", isInline: true, variant: AlertVariant.warning, title: t('Review phone number'), component: "p", actionLinks: [
63
- React.createElement(Button, { key: "case-contact-phone-number-review-confirm", variant: ButtonVariant.link, isInline: true, onClick: () => onCaseDetailsChange({ suppliedPhoneNumberVerified: 'True' }), "data-tracking-id": "case-contact-phone-number-review-confirm", isLoading: isCaseUpdating, isDisabled: isCaseUpdating },
61
+ return (React.createElement(React.Fragment, null, props.isReview && !closeConfirmAlert && !isExportingPDF ? (React.createElement(Alert, { className: "pf-v6-u-mb-md phone-review-banner", isInline: true, variant: AlertVariant.warning, title: t('Review phone number'), component: "p", actionLinks: [
62
+ React.createElement(Button, { className: "pf-v6-u-mr-md", key: "case-contact-phone-number-review-confirm", variant: ButtonVariant.link, isInline: true, onClick: () => onCaseDetailsChange({ suppliedPhoneNumberVerified: 'True' }), "data-tracking-id": "case-contact-phone-number-review-confirm", isLoading: isCaseUpdating, isDisabled: isCaseUpdating },
64
63
  React.createElement(Trans, null, "Yes, confirm phone number")),
65
- React.createElement(Link, { key: "case-contact-phone-number-review", replace: true, to: {
66
- pathname: `/case/${caseNumber}/management`,
67
- }, onClick: () => goToPhoneField(), "data-tracking-id": "case-contact-phone-number-review" },
64
+ React.createElement(Button, { isInline: true, className: "pf-v6-u-mr-md", variant: ButtonVariant.link, key: "case-contact-phone-number-review", component: "a", href: `#/case/${caseNumber}/management`, onClick: () => goToPhoneField(), "data-tracking-id": "case-contact-phone-number-review" },
68
65
  React.createElement(Trans, null, "No, update phone number")),
69
- React.createElement(Button, { key: "case-contact-phone-number-alert-close", variant: ButtonVariant.link, onClick: () => setCloseConfirmAlert(!closeConfirmAlert), "data-tracking-id": "case-contact-phone-number-alert-close", isDisabled: isCaseUpdating },
66
+ React.createElement(Button, { isInline: true, key: "case-contact-phone-number-alert-close", variant: ButtonVariant.link, onClick: () => setCloseConfirmAlert(!closeConfirmAlert), "data-tracking-id": "case-contact-phone-number-alert-close", isDisabled: isCaseUpdating },
70
67
  React.createElement(Trans, null, "Close")),
71
68
  ] },
72
69
  React.createElement(Trans, null, confirmationMessage))) : props.isConfirm && !isExportingPDF ? (React.createElement(Alert, { isInline: true, className: "pf-v6-u-p-sm pf-v6-u-mb-md phone-review-banner", variant: AlertVariant.warning, title: t('Review phone number'), component: "p", actionLinks: [
@@ -1 +1 @@
1
- {"version":3,"file":"VerifyCaseStatusModal.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/CaseEditView/Tabs/CaseDiscussion/VerifyCaseStatusModal/VerifyCaseStatusModal.tsx"],"names":[],"mappings":"AAKA,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,qBAwIlD"}
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,qBA4IlD"}
@@ -7,7 +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 { Button, ButtonVariant, Modal, ModalFooter, ModalVariant } from '@patternfly/react-core';
10
+ import { Button, ButtonVariant, Modal, ModalBody, ModalFooter, ModalHeader, ModalVariant, } from '@patternfly/react-core';
11
11
  import { SingleSelectDropdown, ToastNotification } from '@rh-support/components';
12
12
  import { GlobalMetadataStateContext, useCanEditCase } from '@rh-support/react-context';
13
13
  import { ability, resourceActions, resources } from '@rh-support/user-permissions';
@@ -95,12 +95,14 @@ export function VerifyCaseStatusModal(props) {
95
95
  disabled: statusOption === status,
96
96
  }));
97
97
  return (React.createElement(Modal, { id: "case-close-modal", title: t(`Please verify this case's status`), "aria-describedby": "case-close-modal", isOpen: true, onClose: props.onClose, variant: ModalVariant.medium },
98
- React.createElement("h3", { className: "subheading subheading-sm" },
99
- React.createElement(Trans, null, "Status"),
100
- React.createElement("span", { className: "form-required", "aria-hidden": true }, "*")),
101
- React.createElement(SingleSelectDropdown, { ariaLabel: t(status), id: "verify-case-status", selected: getSelectedOption(), options: getDropdownOptions(), onSelect: onStatusChange, isDisabled: !canManageCase ||
102
- caseOverviewState.allCaseStatuses.isFetching ||
103
- (caseOverviewState.caseStatusUpdating && isCaseUpdating), isInvalid: !status, placeholder: t(status) }),
98
+ React.createElement(ModalHeader, null,
99
+ React.createElement("h3", { className: "subheading subheading-sm" },
100
+ React.createElement(Trans, null, "Status"),
101
+ React.createElement("span", { className: "form-required", "aria-hidden": true }, "*"))),
102
+ React.createElement(ModalBody, null,
103
+ React.createElement(SingleSelectDropdown, { ariaLabel: t(status), id: "verify-case-status", selected: getSelectedOption(), options: getDropdownOptions(), onSelect: onStatusChange, isDisabled: !canManageCase ||
104
+ caseOverviewState.allCaseStatuses.isFetching ||
105
+ (caseOverviewState.caseStatusUpdating && isCaseUpdating), isInvalid: !status, placeholder: t(status) })),
104
106
  React.createElement(ModalFooter, null,
105
107
  React.createElement(Button, { key: "submit-description", variant: ButtonVariant.primary, onClick: onSubmit, isLoading: isVerifyCaseStatusLoading, isDisabled: props.isUpdating, "data-tracking-id": "close-case-description-modal-submit" },
106
108
  React.createElement(Trans, null, "Continue")),
@@ -81,11 +81,14 @@
81
81
  display: flex;
82
82
  align-items: center;
83
83
  }
84
+
84
85
  #options-menu-top-pagination {
85
86
  display: flex !important;
86
87
  flex-wrap: nowrap !important;
87
88
  justify-content: flex-start;
89
+ margin-left: 1rem;
88
90
  }
91
+
89
92
  .timeline-sort-order-select {
90
93
  width: auto;
91
94
  margin-left: 1rem;
@@ -282,6 +285,11 @@ ul#case-history-paginated-timeline {
282
285
  height: 100% !important;
283
286
  }
284
287
 
288
+ .case-history-timeline-datepicker .pf-v6-c-calendar-month__header-year input {
289
+ font-size: var(--pf-t--global--font--size--body--default);
290
+ line-height: var(--pf-t--global--font--line-height--body);
291
+ }
292
+
285
293
  .empty-state-date-picker {
286
294
  margin-left: 82%;
287
295
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Fts.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/Fts.tsx"],"names":[],"mappings":"AAWA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAS/D,UAAU,MAAM;IACZ,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAQD,iBAAS,GAAG,CAAC,KAAK,EAAE,MAAM,qBA2OzB;kBA3OQ,GAAG;;;AA8OZ,eAAe,GAAG,CAAC"}
1
+ {"version":3,"file":"Fts.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/Fts.tsx"],"names":[],"mappings":"AAWA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAS/D,UAAU,MAAM;IACZ,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAQD,iBAAS,GAAG,CAAC,KAAK,EAAE,MAAM,qBA+OzB;kBA/OQ,GAAG;;;AAkPZ,eAAe,GAAG,CAAC"}
@@ -7,7 +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 { InlineEdit, LoadingIndicator, PhoneInput, ToastNotification, usePrevious } from '@rh-support/components';
10
+ import { InlineEdit, LoadingIndicator, TextAreaAutosize, ToastNotification, usePrevious } from '@rh-support/components';
11
11
  import { useCanEditCase } from '@rh-support/react-context';
12
12
  import { isFtsEditableOnEditPage, PreviousCaseTypes, showFtsOnCaseViewEditPage, showFtsOnCreateCasePage, } from '@rh-support/utils';
13
13
  import isEmpty from 'lodash/isEmpty';
@@ -171,11 +171,7 @@ function Fts(props) {
171
171
  React.createElement("input", { type: "checkbox", id: "same-as-case-owner-phone", name: "same-as-case-owner-phone", "data-tracking-id": "same-as-case-owner-phone", checked: ftsContactSameAsOwner, onChange: onSetContactSameAsOwner }),
172
172
  React.createElement("label", { htmlFor: "same-as-case-owner-phone", className: "pf-v6-u-font-weight-normal pf-v6-u-font-size-md" },
173
173
  React.createElement(Trans, null, "Same as case owner's phone number")),
174
- React.createElement(PhoneInput
175
- // id="get-support-24-7-contact"
176
- , {
177
- // id="get-support-24-7-contact"
178
- isDisabled: disableFtsNContact || ftsContactSameAsOwner, "data-tracking-id": "get-support-24-7-contact", phoneValue: contactInfo24X7State || '', onPhoneValueChange: onFtsContactChange }),
174
+ React.createElement(TextAreaAutosize, { id: "get-support-24-7-contact", className: `form-control`, name: "get-support-24-7-contact", value: contactInfo24X7State, onChange: (event) => onFtsContactChange(event.target.value), disabled: disableFtsNContact || ftsContactSameAsOwner, "data-tracking-id": "get-support-24-7-contact" }),
179
175
  React.createElement("p", { className: "form-instructions" },
180
176
  React.createElement(Trans, null, "Please provide contact information where you can be reached at any time to help you with your case."))),
181
177
  (contactInfo24X7State === null || contactInfo24X7State === void 0 ? void 0 : contactInfo24X7State.length) > CONTACT_INFO_24X7_LIMIT && (React.createElement("div", { className: "pull-top" },
@@ -160,7 +160,7 @@ function Severity(props) {
160
160
  ' ',
161
161
  React.createElement("a", { href: "/support/policy/severity", target: "_blank" },
162
162
  React.createElement(Trans, null, "Red Hat Support Severity Level Definitions"))), closeBtnAriaLabel: "Close" },
163
- React.createElement(QuestionCircleIcon, { className: "pf-v6-u-ml-xs icon-size", "aria-label": t(`Support Severity Level info`) }))),
163
+ React.createElement(QuestionCircleIcon, { className: "pf-v6-u-ml-xs icon-size cursor-pointer pf-v6-u-text-color-status-custom", "aria-label": t(`Support Severity Level info`) }))),
164
164
  "\u00A0",
165
165
  filteredSeverities.filter((s) => s.disabled).length !== 0 && (React.createElement(Tooltip, { position: TooltipPosition.top, content: React.createElement(Trans, null, "Only the enabled severity levels are supported for selected product and version.") },
166
166
  React.createElement(Icon, { size: "sm" },
@@ -1 +1 @@
1
- {"version":3,"file":"SupportLevel.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/SupportLevel.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAI5D,OAAO,KAA0C,MAAM,OAAO,CAAC;AAM/D,UAAU,MAAO,SAAQ,gBAAgB;CAAG;AAO5C,iBAAS,YAAY,CAAC,KAAK,EAAE,MAAM,qBAiIlC;kBAjIQ,YAAY;;;AAmIrB,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"SupportLevel.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseInformation/SupportLevel.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAI5D,OAAO,KAA0C,MAAM,OAAO,CAAC;AAM/D,UAAU,MAAO,SAAQ,gBAAgB;CAAG;AAO5C,iBAAS,YAAY,CAAC,KAAK,EAAE,MAAM,qBAoIlC;kBApIQ,YAAY;;;AAsIrB,eAAe,YAAY,CAAC"}
@@ -92,7 +92,7 @@ function SupportLevel(props) {
92
92
  "Learn more about our",
93
93
  ' ',
94
94
  React.createElement("a", { href: "/support/offerings/production/sla", target: "_blank" }, "production support service level agreement"))), closeBtnAriaLabel: "Close" },
95
- React.createElement(QuestionCircleIcon, { className: "pf-v6-u-ml-xs icon-size", "aria-label": "Support Level Info" })),
95
+ React.createElement(QuestionCircleIcon, { className: "pf-v6-u-ml-xs icon-size cursor-pointer pf-v6-u-text-color-status-custom", "aria-label": "Support Level Info" })),
96
96
  React.createElement(SingleSelectDropdown, { ariaLabel: t('Select Support Level'), onSelect: onEntitlementChange, selected: getSelectedOption(), options: getDropdownOptions(), isDisabled: ownersEntitlements.isError || isEmpty(ownersEntitlements.data), isInvalid: isSupportLevelInValid, dataTrackingId: "get-support-supportLevel", placeholder: t('Select Support Level') }),
97
97
  isEmpty(ownersEntitlements.data) && (React.createElement("p", { className: "form-instructions" }, ownersEntitlements.isError ? t('Error loading support levels') : t('No active subscriptions')))));
98
98
  }
@@ -1 +1 @@
1
- {"version":3,"file":"OpenshiftDropdownV4.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseManagement/OpenshiftDropdownV4.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAiB5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAI5D,OAAO,KAA2D,MAAM,OAAO,CAAC;AAOhF,UAAU,MAAO,SAAQ,gBAAgB;IACrC,uBAAuB,EAAE,MAAM,CAAC;IAChC,sBAAsB,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,oBAAoB,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACzF,kBAAkB,EAAE,OAAO,CAAC;IAC5B,iCAAiC,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IAChD,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,oBAAoB,CAAC,EAAE,MAAM,CAAC;CACjC;AAuBD,iBAAS,mBAAmB,CAAC,KAAK,EAAE,MAAM,qBA6bzC;kBA7bQ,mBAAmB;;;AAgc5B,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
1
+ {"version":3,"file":"OpenshiftDropdownV4.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseManagement/OpenshiftDropdownV4.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAiB5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAI5D,OAAO,KAA2D,MAAM,OAAO,CAAC;AAOhF,UAAU,MAAO,SAAQ,gBAAgB;IACrC,uBAAuB,EAAE,MAAM,CAAC;IAChC,sBAAsB,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,oBAAoB,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACzF,kBAAkB,EAAE,OAAO,CAAC;IAC5B,iCAAiC,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IAChD,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,oBAAoB,CAAC,EAAE,MAAM,CAAC;CACjC;AAuBD,iBAAS,mBAAmB,CAAC,KAAK,EAAE,MAAM,qBA8czC;kBA9cQ,mBAAmB;;;AAid5B,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
@@ -84,11 +84,11 @@ function OpenshiftDropdownV4(props) {
84
84
  setClustersSelectOptions(getClusterOptions(clusterResponse));
85
85
  });
86
86
  const onSelect = (event, selectedCluster) => __awaiter(this, void 0, void 0, function* () {
87
- setInputVal('');
88
87
  if (selectedCluster.type === 'checkbox') {
89
88
  setShowArchivedClusters(!showArchivedClusters);
90
89
  props.onClusterClear();
91
90
  setClustersRawResponse([]);
91
+ setInputVal('');
92
92
  }
93
93
  else {
94
94
  props.onClusterIdStateUpdate(selectedCluster);
@@ -264,6 +264,18 @@ function OpenshiftDropdownV4(props) {
264
264
  // no dependency here as we want to run this once on load
265
265
  // eslint-disable-next-line react-hooks/exhaustive-deps
266
266
  }, []);
267
+ useEffect(() => {
268
+ if (!isEmpty(props.openshiftClusterIDState)) {
269
+ const displayName = getDisplayName(props.openshiftClusterIDState, props.noClusterIdReasonExplanation || '', props.openshiftDisplayName || props.openshiftClusterIDState);
270
+ if (isEmpty(inputVal) || inputVal !== displayName) {
271
+ setInputVal(displayName);
272
+ }
273
+ }
274
+ else if (!isEmpty(inputVal)) {
275
+ setInputVal('');
276
+ }
277
+ // eslint-disable-next-line react-hooks/exhaustive-deps
278
+ }, [props.openshiftClusterIDState, props.openshiftDisplayName, props.noClusterIdReasonExplanation]);
267
279
  // need to get clusters when user opens the dropdown
268
280
  // as the api response is cached np extra call is made on open/close
269
281
  // added observing props.isV3 because re-render
@@ -1 +1 @@
1
- {"version":3,"file":"RHAssociatesSelector.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseManagement/RHAssociatesSelector.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAS5D,MAAM,WAAW,MAAM;CAAG;AAG1B,iBAAS,oBAAoB,CAAC,KAAK,EAAE,MAAM,qBA+M1C;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
1
+ {"version":3,"file":"RHAssociatesSelector.d.ts","sourceRoot":"","sources":["../../../../src/components/CaseManagement/RHAssociatesSelector.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAS5D,MAAM,WAAW,MAAM;CAAG;AAG1B,iBAAS,oBAAoB,CAAC,KAAK,EAAE,MAAM,qBAqN1C;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
@@ -100,6 +100,7 @@ function RHAssociatesSelector(props) {
100
100
  onNotifiedUserChange([Object.assign(Object.assign({}, loggedInUser.data), { accountNumber: loggedInUserRights.data.getAccountNumber() })], true);
101
101
  });
102
102
  const removeCurrentUser = () => {
103
+ console.log(isCurrentUserSelectedInternalNotifiedUser());
103
104
  if (isCurrentUserSelectedInternalNotifiedUser()) {
104
105
  onNotifiedUserChange(filter(selectedNotificationContacts, (contact) => contact.ssoUsername !== loggedInUser.data.ssoUsername));
105
106
  }
@@ -110,21 +111,23 @@ function RHAssociatesSelector(props) {
110
111
  };
111
112
  const canNotifyRHAssociates = ability.can(resourceActions.PATCH, resources.CASE_CREATE, CaseListFields.NOTIFY_RH_ASSOCIATES);
112
113
  const toolTipRef = useRef();
114
+ const contactsToExclude = !isEmpty(selectedOwner.data) ? [{ ssoUsername: selectedOwner.data.ssoUsername }] : [];
113
115
  if (!canNotifyRHAssociates)
114
116
  return React.createElement(React.Fragment, null);
115
117
  return (React.createElement(React.Fragment, null, canNotifyRHAssociates && (React.createElement("div", { className: "form-group" },
116
118
  React.createElement("label", { className: "react-typeahead-label-wrapper", htmlFor: "get-support-notifications" },
117
119
  React.createElement(Trans, null, "Internal Contacts"),
118
- React.createElement(ContactSelectorInternal, { className: "push-bottom-narrow", selectedContacts: filter(selectedNotificationContacts, (c) => c.isInternal), showSelectedContacts: true, contactsToExclude: !isEmpty(selectedOwner.data) ? [{ ssoUsername: selectedOwner.data.ssoUsername }] : [], id: "open-case-rh-notifications", name: "open-case-rh-notifications", multiple: true, contactListParams: {
120
+ React.createElement(ContactSelectorInternal, { className: "push-bottom-narrow", selectedContacts: filter(selectedNotificationContacts, (c) => c.isInternal), showSelectedContacts: true, contactsToExclude: contactsToExclude, disableContactRemoval: contactsToExclude, id: "open-case-rh-notifications", name: "open-case-rh-notifications", multiple: true, contactListParams: {
119
121
  internal: false, // to get non-ldap contacts only
120
122
  isInternalContact: true,
121
123
  }, placeholder: t(`Add an internal associate to watch this case`), onSelect: onNotifiedUserChange, renderToken: renderToken, isUpdating: isRHAssociatesUpdating, "data-tracking-id": "case-contact-select-rh-watcher" })),
122
- caseNumber && showAddWatchButton() && !isExportingPDF && (React.createElement(Button, { variant: "secondary", onClick: addCurrentUser, type: "button", "data-tracking-id": "case-add-me-rh-watcher" },
124
+ caseNumber && showAddWatchButton() && !isExportingPDF && (React.createElement(Button, { className: "add-watcher-button", variant: "secondary", onClick: addCurrentUser, type: "button", "data-tracking-id": "case-add-me-rh-watcher", isDisabled: isRHAssociatesUpdating },
123
125
  React.createElement(Trans, null, "Add me as a watcher"))),
124
- caseNumber && showRemoveWatchButton() && !isExportingPDF && (React.createElement("div", { ref: toolTipRef, className: "remove-me-as-watcher pf-v6-u-display-inline-block" }, isCurrentUserCaseContact ? (React.createElement(React.Fragment, null,
126
+ caseNumber && showRemoveWatchButton() && !isExportingPDF && (React.createElement("div", { className: "remove-me-as-watcher pf-v6-u-display-inline-block" }, isCurrentUserCaseContact ? (React.createElement(React.Fragment, null,
125
127
  React.createElement(Tooltip, { trigger: 'mouseenter focus', triggerRef: toolTipRef, position: TooltipPosition.top, content: React.createElement(Trans, null, "You are case contact and therefore you cannot be removed as watcher") }),
126
- React.createElement(Button, { variant: "tertiary", onClick: removeCurrentUser, type: "button", isDisabled: true, "data-tracking-id": "case-remove-me-rh-watcher-case-contact" },
127
- React.createElement(Trans, null, "Remove me as a watcher")))) : (React.createElement(Button, { variant: "secondary", onClick: removeCurrentUser, type: "button", "data-tracking-id": "case-remove-me-rh-watcher" },
128
+ React.createElement("div", { ref: toolTipRef },
129
+ React.createElement(Button, { className: "remove-watcher-button", variant: "tertiary", onClick: removeCurrentUser, isDisabled: true, "data-tracking-id": "case-remove-me-rh-watcher-case-contact" },
130
+ React.createElement(Trans, null, "Remove me as a watcher"))))) : (React.createElement(Button, { className: "remove-watcher-button", variant: "secondary", onClick: removeCurrentUser, "data-tracking-id": "case-remove-me-rh-watcher", isDisabled: isRHAssociatesUpdating },
128
131
  React.createElement(Trans, null, "Remove me as a watcher")))))))));
129
132
  }
130
133
  export { RHAssociatesSelector };
@@ -1 +1 @@
1
- {"version":3,"file":"CaseContactSelector.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseManagement/SendNotifications/CaseContactSelector.tsx"],"names":[],"mappings":"AA2BA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAgBvE,MAAM,WAAW,MAAM;CAAG;AAG1B,iBAAS,mBAAmB,CAAC,KAAK,EAAE,MAAM,qBA4czC;AAED,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"CaseContactSelector.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseManagement/SendNotifications/CaseContactSelector.tsx"],"names":[],"mappings":"AA0BA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAgBvE,MAAM,WAAW,MAAM;CAAG;AAG1B,iBAAS,mBAAmB,CAAC,KAAK,EAAE,MAAM,qBAodzC;AAED,eAAe,mBAAmB,CAAC"}
@@ -17,7 +17,6 @@ import differenceBy from 'lodash/differenceBy';
17
17
  import filter from 'lodash/filter';
18
18
  import find from 'lodash/find';
19
19
  import intersection from 'lodash/intersection';
20
- import intersectionBy from 'lodash/intersectionBy';
21
20
  import isEmpty from 'lodash/isEmpty';
22
21
  import isEqual from 'lodash/isEqual';
23
22
  import map from 'lodash/map';
@@ -112,7 +111,7 @@ function CaseContactSelector(props) {
112
111
  });
113
112
  const processCaseContacts = (selectedContacts) => __awaiter(this, void 0, void 0, function* () {
114
113
  const toAdd = filter(differenceBy(selectedContacts, selectedNotificationContacts, 'ssoUsername'), (item) => item.ssoUsername !== contactSsoUsername);
115
- const toRemove = filter(intersectionBy(selectedContacts, selectedNotificationContacts, 'ssoUsername'), (item) => !item.isInternal && item.ssoUsername !== contactSsoUsername);
114
+ const toRemove = filter(differenceBy(selectedNotificationContacts, selectedContacts, 'ssoUsername'), (item) => !item.isInternal && item.ssoUsername !== contactSsoUsername);
116
115
  (toAdd.length || toRemove.length) && clearErrorState();
117
116
  if ((toAdd || []).length > 0) {
118
117
  if (loggedInUserRights.data.isOrgAdmin()) {
@@ -267,7 +266,7 @@ function CaseContactSelector(props) {
267
266
  React.createElement(CaseContactsSelectorExternal, { isDisabled: isUpdatingCustomEmails || isAssociatesUpdating, groupContactsAndEmails: true, allowCustomEmailAdd: true, contactSsoUsername: contactSsoUsername !== null && contactSsoUsername !== void 0 ? contactSsoUsername : '', loggedInUserRights: loggedInUserRights.data, selectedAccountNumber: accountNumber, selected: [
268
267
  ...customEmailsList.data,
269
268
  ...filter(selectedNotificationContacts, (c) => !c.isInternal),
270
- ], contactsToExclude: !isEmpty(selectedOwner.data) ? [selectedOwner.data] : [], onChange: onNotifiedUserChange, clearButton: true, multiple: true, placeholder: t(`Search for an email address or username of the person you want to notify`), id: "open-case-notifications", name: "open-case-notifications", className: "react-select-custom", renderToken: renderToken, isUpdating: isAssociatesUpdating ||
269
+ ], contactsToExclude: !isEmpty(selectedOwner.data) ? [selectedOwner.data] : [], onChange: onNotifiedUserChange, clearButton: true, multiple: true, placeholder: t('Search for an email address or username of the person you want to notify'), id: "open-case-notifications", name: "open-case-notifications", className: "react-select-custom", renderToken: renderToken, isUpdating: isAssociatesUpdating ||
271
270
  customEmailsList.isFetching ||
272
271
  isUpdatingCustomEmails ||
273
272
  isCaseOwnerUpdating, isExportingPDF: isExportingPDF, customEmails: accountCustomEmails.data || [], canAddNew: onAddNew, getCreateNewText: getCreateNewText })),
@@ -284,12 +283,13 @@ function CaseContactSelector(props) {
284
283
  " is not listed under your account. You can always",
285
284
  ' ',
286
285
  React.createElement(Button, { variant: "link", isInline: true, component: "span", onClick: onAddEmailToAccountBtnClick }, "add them at the account level"))))),
287
- caseNumber && showAddWatchButton() && !isExportingPDF && (React.createElement(Button, { variant: "secondary", onClick: addCurrentUser, type: "button", "data-tracking-id": "case-add-me-watcher" },
286
+ caseNumber && showAddWatchButton() && !isExportingPDF && (React.createElement(Button, { className: "add-watcher-button", variant: "secondary", onClick: addCurrentUser, type: "button", "data-tracking-id": "case-add-me-watcher", isDisabled: isUpdatingCustomEmails || isAssociatesUpdating },
288
287
  React.createElement(Trans, null, "Add me as a watcher"))),
289
- caseNumber && showRemoveWatchButton() && !isExportingPDF && (React.createElement("div", { ref: toolTipRef, className: "remove-me-as-watcher pf-v6-u-display-inline-block" }, isCurrentUserCaseContact ? (React.createElement(React.Fragment, null,
288
+ caseNumber && showRemoveWatchButton() && !isExportingPDF && (React.createElement("div", { className: "remove-me-as-watcher pf-v6-u-display-inline-block" }, isCurrentUserCaseContact ? (React.createElement(React.Fragment, null,
290
289
  React.createElement(Tooltip, { trigger: 'mouseenter focus', triggerRef: toolTipRef, position: TooltipPosition.top, content: React.createElement(Trans, null, "You are case contact and therefore you cannot be removed as watcher") }),
291
- React.createElement(Button, { variant: "tertiary", onClick: removeCurrentUser, type: "button", isDisabled: true, "data-tracking-id": "case-remove-me-watcher" },
292
- React.createElement(Trans, null, "Remove me as a watcher")))) : (React.createElement(Button, { variant: "secondary", onClick: removeCurrentUser, type: "button", "data-tracking-id": "case-remove-me-watcher" },
290
+ React.createElement("div", { className: "pf-v6-u-display-inline-block", ref: toolTipRef },
291
+ React.createElement(Button, { className: "remove-watcher-button", variant: "tertiary", onClick: removeCurrentUser, type: "button", isDisabled: true, "data-tracking-id": "case-remove-me-watcher" },
292
+ React.createElement(Trans, null, "Remove me as a watcher"))))) : (React.createElement(Button, { className: "remove-watcher-button", variant: "secondary", onClick: removeCurrentUser, isDisabled: isUpdatingCustomEmails || isAssociatesUpdating, type: "button", "data-tracking-id": "case-remove-me-watcher" },
293
293
  React.createElement(Trans, null, "Remove me as a watcher"))))))) : (React.createElement(NonOrgCaseNotifyeesSelector, { id: "open-case-notifications", placeholder: t('Enter an email address or username for the person you want to notify'), isDisabled: isAssociatesUpdating || customEmailsList.isFetching || isUpdatingCustomEmails, selectedItems: [
294
294
  ...customEmailsList.data,
295
295
  ...filter(selectedNotificationContacts, (c) => !c.isInternal),
@@ -1 +1 @@
1
- {"version":3,"file":"NonOrgCaseNotifyeesSelector.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseManagement/SendNotifications/NonOrgCaseNotifyeesSelector.tsx"],"names":[],"mappings":"AAgBA,OAAO,EAAwB,oBAAoB,EAAY,MAAM,wBAAwB,CAAC;AAE9F,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAkD,MAAM,OAAO,CAAC;AAGvE,UAAU,MAAO,SAAQ,gBAAgB;IACrC,aAAa,EAAE,oBAAoB,EAAE,CAAC;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,CAAC,aAAa,EAAE,oBAAoB,EAAE,KAAK,IAAI,CAAC;IAC1D,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAC1C,kBAAkB,EAAE,MAAM,CAAC;CAC9B;AAqCD,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,qBA0MxD"}
1
+ {"version":3,"file":"NonOrgCaseNotifyeesSelector.d.ts","sourceRoot":"","sources":["../../../../../src/components/CaseManagement/SendNotifications/NonOrgCaseNotifyeesSelector.tsx"],"names":[],"mappings":"AAgBA,OAAO,EAAwB,oBAAoB,EAAY,MAAM,wBAAwB,CAAC;AAE9F,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAkD,MAAM,OAAO,CAAC;AAGvE,UAAU,MAAO,SAAQ,gBAAgB;IACrC,aAAa,EAAE,oBAAoB,EAAE,CAAC;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,CAAC,aAAa,EAAE,oBAAoB,EAAE,KAAK,IAAI,CAAC;IAC1D,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAC1C,kBAAkB,EAAE,MAAM,CAAC;CAC9B;AAqCD,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,qBA2MxD"}
@@ -144,7 +144,7 @@ export function NonOrgCaseNotifyeesSelector(props) {
144
144
  const isContactOption = isContact(option);
145
145
  const isCurrentUserCaseContact = isContactOption && option.ssoUsername === props.contactSsoUsername;
146
146
  const isDisabled = (props.isChipDisabled && isContactOption) || isCurrentUserCaseContact;
147
- return (React.createElement(Label, { key: getKey(option) || index, onClose: !isDisabled ? () => onRemoveItem(option) : undefined, closeBtnAriaLabel: `Remove ${getHydraContactLabel(option)}`, variant: "outline" }, getHydraContactLabel(option)));
147
+ return (React.createElement(Label, { key: getKey(option) || index, onClose: () => onRemoveItem(option), isDisabled: isDisabled, closeBtnAriaLabel: `Remove ${getHydraContactLabel(option)}`, variant: "outline" }, getHydraContactLabel(option)));
148
148
  })));
149
149
  };
150
150
  const menu = (React.createElement(Menu, { ref: menuRef },
@@ -1 +1 @@
1
- {"version":3,"file":"CveModal.d.ts","sourceRoot":"","sources":["../../../../src/components/Cve/CveModal.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAU1C,eAAO,MAAM,QAAQ,yBAyEpB,CAAC"}
1
+ {"version":3,"file":"CveModal.d.ts","sourceRoot":"","sources":["../../../../src/components/Cve/CveModal.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAU1C,eAAO,MAAM,QAAQ,yBA2EpB,CAAC"}
@@ -1,4 +1,4 @@
1
- import { Badge, Button, Flex, FlexItem, Modal, ModalFooter, ModalHeader, ModalVariant } from '@patternfly/react-core';
1
+ import { Badge, Button, Flex, FlexItem, Modal, ModalBody, ModalFooter, ModalHeader, ModalVariant, } from '@patternfly/react-core';
2
2
  import ExternalLinkAltIcon from '@patternfly/react-icons/dist/esm/icons/external-link-alt-icon';
3
3
  import { getAccessHostname } from '@rh-support/utils';
4
4
  import isEqual from 'lodash/isEqual';
@@ -37,7 +37,8 @@ export const CveModal = () => {
37
37
  React.createElement(ModalHeader, { title: React.createElement(Flex, { alignItems: { default: 'alignItemsCenter' } },
38
38
  React.createElement(FlexItem, { spacer: { default: 'spacerSm' } }, cveWorkflowRecommendation.length > 1 ? (React.createElement(Trans, null, "Handpicked for these CVEs")) : (React.createElement(Trans, null, "Handpicked for this CVE"))),
39
39
  React.createElement(Badge, { isRead: true }, size(cveWorkflowRecommendation))) }),
40
- React.createElement(CvePanel, null),
40
+ React.createElement(ModalBody, null,
41
+ React.createElement(CvePanel, null)),
41
42
  React.createElement(ModalFooter, null,
42
43
  React.createElement(Button, { icon: React.createElement(ExternalLinkAltIcon, { className: "pf-v6-u-ml-sm" }), key: "cve-checker-link", "data-tracking-id": "cve-checker-link", target: "_blank", variant: "secondary", isInline: true, component: "a", href: generateCveCheckerUrl() },
43
44
  React.createElement(Trans, null, "Red Hat CVE Checker")))));
@@ -14,7 +14,7 @@ export const CveSidebar = () => {
14
14
  return null;
15
15
  }
16
16
  return (React.createElement(React.Fragment, null,
17
- React.createElement("div", { className: "card card-white card-support file-diag pf-v6-u-mb-md" },
17
+ React.createElement("div", { className: "card card-white card-support file-diag pf-v6-u-mb-lg" },
18
18
  React.createElement("h3", { className: "card-heading popular-solutions green-card-heading card-header-bg" },
19
19
  React.createElement("span", { className: "pf-v6-u-mr-sm" }, cveWorkflowRecommendation.length > 1 ? (React.createElement(Trans, null, "Handpicked for these CVEs")) : (React.createElement(Trans, null, "Handpicked for this CVE"))),
20
20
  React.createElement(Badge, { isRead: true }, size(cveWorkflowRecommendation))),
@@ -132,7 +132,7 @@ export default function SupportTypeSelectorPage() {
132
132
  React.createElement("span", { className: "form-required", "aria-hidden": true }, "*")),
133
133
  (allCaseTypes.isFetching || (isFetchingSelectedAccountDetails && haventLoadedMetadata(allCaseTypes))) && (React.createElement(LoadingIndicator, { size: "lg", show: true })),
134
134
  React.createElement(Gallery, { hasGutter: true, className: "pf-v6-u-mt-sm" }, SupportTypesArray.map((supportTypesArrayValues) => (React.createElement(GalleryItem, { key: supportTypesArrayValues.id },
135
- React.createElement(Card, { id: supportTypesArrayValues.oldSupportType, key: supportTypesArrayValues.oldSupportType, className: `support-types-card${isNextBtnClickedToShowValidationError && !caseType ? ' support-types-invalid' : ''}`, isSelectable: true, onKeyDown: onKeyDown, onClick: onSupportTypeClick, isSelected: !!caseType && supportTypesArrayValues.oldSupportType === caseType, isFullHeight: true, "data-tracking-id": supportTypesArrayValues.dataTrackingID, tabIndex: 0 },
135
+ React.createElement(Card, { id: supportTypesArrayValues.oldSupportType, key: supportTypesArrayValues.oldSupportType, className: `support-types-card cursor-pointer${isNextBtnClickedToShowValidationError && !caseType ? ' support-types-invalid' : ''}`, isSelectable: true, onKeyDown: onKeyDown, onClick: onSupportTypeClick, isSelected: !!caseType && supportTypesArrayValues.oldSupportType === caseType, isFullHeight: true, "data-tracking-id": supportTypesArrayValues.dataTrackingID, tabIndex: 0 },
136
136
  React.createElement(CardBody, null, supportTypesArrayValues.icon ? (React.createElement(Split, null,
137
137
  React.createElement(SplitItem, { className: "pf-v6-u-pr-lg" },
138
138
  React.createElement(Bullseye, null, supportTypesArrayValues.icon && supportTypesArrayValues.icon)),
@@ -1 +1 @@
1
- {"version":3,"file":"AllProductsSelector.d.ts","sourceRoot":"","sources":["../../../../src/components/ProductSelector/AllProductsSelector.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAsD,MAAM,OAAO,CAAC;AAE3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAMvD,OAAO,EAAuC,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAMvG,UAAU,MAAM;IACZ,qBAAqB,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACjD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAClC;AAQD;;;;;;;GAOG;AACH,QAAA,MAAM,mBAAmB,4EA4KvB,CAAC;AAGH,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
1
+ {"version":3,"file":"AllProductsSelector.d.ts","sourceRoot":"","sources":["../../../../src/components/ProductSelector/AllProductsSelector.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAsD,MAAM,OAAO,CAAC;AAE3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAMvD,OAAO,EAAuC,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAMvG,UAAU,MAAM;IACZ,qBAAqB,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACjD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAClC;AAQD;;;;;;;GAOG;AACH,QAAA,MAAM,mBAAmB,4EA+KvB,CAAC;AAGH,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
@@ -1,4 +1,4 @@
1
- import { Modal, ModalFooter, ModalVariant } from '@patternfly/react-core';
1
+ import { Modal, ModalBody, ModalFooter, ModalHeader, ModalVariant } from '@patternfly/react-core';
2
2
  import { AlertMessage, AlertType } from '@rh-support/components';
3
3
  import { GlobalMetadataStateContext } from '@rh-support/react-context';
4
4
  import filter from 'lodash/filter';
@@ -114,11 +114,14 @@ const AllProductsSelector = forwardRef((props, ref) => {
114
114
  !topContent.isFetching &&
115
115
  topContent.data.length !== 0 && (React.createElement("button", { className: "btn btn-bordered-blue btn-slim pull-top-narrow push-bottom-narrow", "data-tracking-id": "suggested-fixes-trigger", onClick: toggleTCModal, type: "button" },
116
116
  React.createElement(Trans, null, "Suggested fixes"))),
117
- props.loadTCOnChange && !topContent.isFetching && topContent.data.length !== 0 && (React.createElement(Modal, { className: "feedback-modal", title: t('Suggested fixes'), "aria-describedby": "Feedback Form", isOpen: isModalOpen, variant: ModalVariant.large, onClose: toggleTCModal },
118
- React.createElement("p", null, t('There are new updates to suggested fixes after changing your product.')),
119
- React.createElement("span", null,
120
- React.createElement(Trans, null, "Here are some common suggestions:")),
121
- React.createElement(Suggestions, { showTitleDescription: false, showMax: 6 }),
117
+ props.loadTCOnChange && !topContent.isFetching && topContent.data.length !== 0 && (React.createElement(Modal, { className: "feedback-modal", "aria-describedby": "Feedback Form", isOpen: isModalOpen, variant: ModalVariant.large },
118
+ React.createElement(ModalHeader, null,
119
+ React.createElement("h2", null, t('Suggested fixes'))),
120
+ React.createElement(ModalBody, null,
121
+ React.createElement("p", null, t('There are new updates to suggested fixes after changing your product.')),
122
+ React.createElement("span", null,
123
+ React.createElement(Trans, null, "Here are some common suggestions:")),
124
+ React.createElement(Suggestions, { showTitleDescription: false, showMax: 6 })),
122
125
  React.createElement(ModalFooter, null,
123
126
  React.createElement("button", { key: "cancel", onClick: toggleTCModal, className: "btn btn-app btn-primary", type: "button" },
124
127
  React.createElement(Trans, null, "Cancel")))))));
@@ -1 +1 @@
1
- {"version":3,"file":"NewProductDropdownSelector.d.ts","sourceRoot":"","sources":["../../../../src/components/ProductSelector/NewProductDropdownSelector.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AAoBpE,OAAO,KAAkD,MAAM,OAAO,CAAC;AAKvE,UAAU,MAAM;IACZ,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;IAChC,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,GAAG,CAAC;IAC1C,qCAAqC,EAAE,OAAO,CAAC;IAC/C,YAAY,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,eAAO,MAAM,0BAA0B,UAAW,MAAM,sBAsMvD,CAAC;AAEF,eAAe,0BAA0B,CAAC"}
1
+ {"version":3,"file":"NewProductDropdownSelector.d.ts","sourceRoot":"","sources":["../../../../src/components/ProductSelector/NewProductDropdownSelector.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AAoBpE,OAAO,KAAkD,MAAM,OAAO,CAAC;AAUvE,UAAU,MAAM;IACZ,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;IAChC,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,GAAG,CAAC;IAC1C,qCAAqC,EAAE,OAAO,CAAC;IAC/C,YAAY,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,eAAO,MAAM,0BAA0B,UAAW,MAAM,sBA8MvD,CAAC;AAEF,eAAe,0BAA0B,CAAC"}
@@ -7,11 +7,15 @@ import isEqual from 'lodash/isEqual';
7
7
  import React, { useContext, useEffect, useRef, useState } from 'react';
8
8
  import { Trans, useTranslation } from 'react-i18next';
9
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
+ };
10
14
  export const NewProductDropdownSelector = (props) => {
11
15
  const { t } = useTranslation();
12
16
  const [isOpen, setIsOpen] = useState(false);
13
17
  const [showValidationLocal, setShowValidationLocal] = useState(props.isNextBtnClickedToShowValidationError);
14
- const [isSelectedProductSupportedForCustomer] = useState(true);
18
+ const [isSelectedProductSupportedForCustomer, setIsSelectedProductSupportedForCustomer] = useState(true);
15
19
  const [filteredProducts, setFilteredProducts] = useState(props.products);
16
20
  const [shouldFilter, setShouldFilter] = useState(false);
17
21
  const textInputRef = useRef();
@@ -40,6 +44,11 @@ export const NewProductDropdownSelector = (props) => {
40
44
  setFilteredProducts(productsToFilter);
41
45
  }
42
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]);
43
52
  const onToggleClick = () => {
44
53
  var _a;
45
54
  setIsOpen(!isOpen);
@@ -1 +1 @@
1
- {"version":3,"file":"AsideResults.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/AsideResults.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAwC,MAAM,OAAO,CAAC;AAE7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AASvD,OAAO,EAAE,eAAe,EAAsC,MAAM,iCAAiC,CAAC;AAUtG,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,qBA6MzC"}
1
+ {"version":3,"file":"AsideResults.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/AsideResults.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAwC,MAAM,OAAO,CAAC;AAE7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AASvD,OAAO,EAAE,eAAe,EAAsC,MAAM,iCAAiC,CAAC;AAUtG,UAAU,MAAM;IACZ,UAAU,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,qBA4MzC"}
@@ -131,13 +131,13 @@ export function AsideResults(props) {
131
131
  const isIdea = caseType === PreviousCaseTypes.FEATURE_ENHANCEMENT;
132
132
  if (!canShowSideRecommendations())
133
133
  return React.createElement(React.Fragment, null);
134
- return (React.createElement(Card, { className: "pf-v6-u-m-sm" },
134
+ return (React.createElement(Card, { className: "pf-v6-u-mt-lg pf-v6-u-mb-0" },
135
135
  React.createElement(CardHeader, null,
136
136
  React.createElement("h3", null, isIdea ? (React.createElement(Trans, null, "Search recommendations")) : (React.createElement(Trans, null, "Articles recommended by OpenShift AI")))),
137
137
  React.createElement(CardBody, null,
138
138
  React.createElement("ul", { className: "list-flat" }, recommendationState.sideRecommendation.map((doc, index) => {
139
139
  var _a, _b;
140
- return (React.createElement("li", { className: "result", key: doc.id },
140
+ return (React.createElement("li", { className: `result${index !== 0 && 'pf-v6-u-mt-sm'}`, key: doc.id },
141
141
  React.createElement("header", { className: "result-header" },
142
142
  React.createElement("a", { href: `${doc.view_uri}?${RouteUtils.getSEResourceQueryParams(activeSessionId, (_b = (_a = sessionResourceTracking[SessionResourceSource.RECOMMENDATIONS_ASIDE]) === null || _a === void 0 ? void 0 : _a.resourceOriginId) !== null && _b !== void 0 ? _b : '', SessionResourceSource.RECOMMENDATIONS_ASIDE)}`, className: "se-recommended ts-result-aside", "data-tracking-id": `se-recommended-sidebar-recommendations-${index}`, rel: "noopener noreferrer", target: "_blank", onClick: onResourceClick(doc, index), dangerouslySetInnerHTML: computeRecommendationTitle(doc) })),
143
143
  React.createElement("p", { className: "result-body", dangerouslySetInnerHTML: computeRecommendationAbstract(doc, 150) })));
@@ -1 +1 @@
1
- {"version":3,"file":"ClusterRecommendationsModal.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/ClusterRecommendationsModal.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA+B,MAAM,OAAO,CAAC;AAYpD,UAAU,MAAM;CAAG;AAEnB,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,qBAqFxD"}
1
+ {"version":3,"file":"ClusterRecommendationsModal.d.ts","sourceRoot":"","sources":["../../../../src/components/Recommendations/ClusterRecommendationsModal.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA+B,MAAM,OAAO,CAAC;AAYpD,UAAU,MAAM;CAAG;AAEnB,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,qBAyFxD"}