@rh-support/react-context 2.5.27 → 2.5.29

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.
@@ -1 +1 @@
1
- {"version":3,"file":"AccountSelectorInternal.d.ts","sourceRoot":"","sources":["../../../../src/components/AccountSelector/AccountSelectorInternal.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAqBhF,OAAO,KAA+C,MAAM,OAAO,CAAC;AAKpE,UAAU,MAAM;IACZ,gBAAgB,CAAC,EAAE,QAAQ,EAAE,CAAC;IAC9B,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC;IAC7B,kBAAkB,CAAC,EAAE,QAAQ,EAAE,CAAC;IAChC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,GAAG,CAAC;IACzC,iBAAiB,CAAC,EAAE,kBAAkB,CAAC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAkCD,iBAAS,uBAAuB,CAAC,KAAK,EAAE,MAAM,qBAyS7C;kBAzSQ,uBAAuB;;;AA4ShC,OAAO,EAAE,uBAAuB,EAAE,CAAC"}
1
+ {"version":3,"file":"AccountSelectorInternal.d.ts","sourceRoot":"","sources":["../../../../src/components/AccountSelector/AccountSelectorInternal.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAqBhF,OAAO,KAA+C,MAAM,OAAO,CAAC;AAKpE,UAAU,MAAM;IACZ,gBAAgB,CAAC,EAAE,QAAQ,EAAE,CAAC;IAC9B,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC;IAC7B,kBAAkB,CAAC,EAAE,QAAQ,EAAE,CAAC;IAChC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,GAAG,CAAC;IACzC,iBAAiB,CAAC,EAAE,kBAAkB,CAAC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAkCD,iBAAS,uBAAuB,CAAC,KAAK,EAAE,MAAM,qBA8S7C;kBA9SQ,uBAAuB;;;AAiThC,OAAO,EAAE,uBAAuB,EAAE,CAAC"}
@@ -88,26 +88,26 @@ function AccountSelectorInternal(props) {
88
88
  };
89
89
  const dropdownOptions = useMemo(() => {
90
90
  if (isFetching) {
91
- return (React.createElement("div", { key: "searching", className: "pf-v5-u-px-md pf-v5-u-py-sm" },
91
+ return (React.createElement("div", { key: "searching", className: "pf-v6-u-px-md pf-v6-u-py-sm" },
92
92
  React.createElement(Trans, null, "Searching...")));
93
93
  }
94
94
  if (isQueryChanged && isEmpty(items)) {
95
- return (React.createElement("div", { key: "no-results", className: "pf-v5-u-px-md pf-v5-u-py-sm" },
95
+ return (React.createElement("div", { key: "no-results", className: "pf-v6-u-px-md pf-v6-u-py-sm" },
96
96
  React.createElement(Trans, null, "No results found")));
97
97
  }
98
98
  return [
99
99
  ...itemsToRender.map((item, index) => (React.createElement(SelectOption, { isFocused: focusedItemIndex === index, key: index, value: item, hasCheckbox: props.multiple, isSelected: selectedItems.some((account) => item.accountNumber === account.accountNumber) }, props.restrictedOnSubscriptionAbuse && item.subscriptionAbuse ? (React.createElement(Flex, { justifyContent: { default: 'justifyContentSpaceBetween' } },
100
100
  React.createElement(FlexItem, { className: "form-instructions form-invalid" }, getDisplayName(item)),
101
- React.createElement(FlexItem, { className: "form-instructions form-invalid pf-v5-u-text-nowrap pf-v5-u-pr-sm" },
101
+ React.createElement(FlexItem, { className: "form-instructions form-invalid pf-v6-u-text-nowrap pf-v6-u-pr-sm" },
102
102
  React.createElement(InfoCircleIcon, null),
103
103
  " ",
104
104
  React.createElement(Trans, null, "Subscription abuse")))) : (React.createElement("span", null, getDisplayName(item)))))),
105
105
  ...(resultSize < items.length
106
106
  ? [
107
- React.createElement("div", { className: "pf-v5-c-divider", role: "separator", key: "separator" }),
107
+ React.createElement("div", { className: "pf-v6-c-divider", role: "separator", key: "separator" }),
108
108
  React.createElement(SelectOption, { key: 'diplay-more-option', onClick: onDisplayMoreClick, value: 'display-more' },
109
109
  React.createElement(Flex, { justifyContent: { default: 'justifyContentCenter' } },
110
- React.createElement(FlexItem, { className: '"pf-v5-c-button pf-m-link pf-m-inline' },
110
+ React.createElement(FlexItem, { className: '"pf-v6-c-button pf-m-link pf-m-inline' },
111
111
  React.createElement(Trans, null, "Display additional results")))),
112
112
  ]
113
113
  : []),
@@ -249,7 +249,7 @@ function AccountSelectorInternal(props) {
249
249
  const toggle = (toggleRef) => (React.createElement(MenuToggle, { innerRef: toggleRef, variant: "typeahead", onClick: onToggleClick, isExpanded: isOpen, isFullWidth: true, isDisabled: props.disabled },
250
250
  React.createElement(TextInputGroup, { isPlain: true, innerRef: inputGroupRef },
251
251
  React.createElement(TextInputGroupMain, { value: query, role: "combobox", onClick: onToggleClick, onKeyDown: onInputKeyDown, onChange: onFilter, placeholder: t(props.placeholder || ''), isExpanded: isOpen, innerRef: textInputRef, "aria-label": `select${props.multiple ? ' multi' : ''} typeahead listbox`, "aria-controls": "account-selector-dropdown" }),
252
- React.createElement(TextInputGroupUtilities, null, !isEmpty(query) && (React.createElement(Button, { variant: "plain", onClick: onClearSelection, isDisabled: isFetching, "aria-label": t('Clear') }, isFetching ? React.createElement(LoadingIndicator, { show: true, size: "sm" }) : React.createElement(TimesCircleIcon, { "aria-hidden": true })))))));
252
+ React.createElement(TextInputGroupUtilities, null, !isEmpty(query) && (React.createElement(Button, { icon: isFetching ? (React.createElement(LoadingIndicator, { show: true, size: "sm" })) : (React.createElement(TimesCircleIcon, { "aria-hidden": true })), variant: "plain", onClick: onClearSelection, isDisabled: isFetching, "aria-label": t('Clear') }))))));
253
253
  return (React.createElement(Select, { "data-tracking-id": "account-selector-dropdown", isOpen: isOpen, onOpenChange: () => setIsOpen(false), id: props.id, toggle: toggle, popperProps: { direction: 'down', enableFlip: false }, onSelect: (_e, v) => onSelect(v), selected: selectedItems, isScrollable: true },
254
254
  React.createElement(SelectList, null, dropdownOptions)));
255
255
  }
@@ -18,7 +18,7 @@ export const EmbeddedServiceChat = () => {
18
18
  setIsBlockedErrorBoxVisible(true);
19
19
  };
20
20
  const chatErrorMessagePopover = (param) => (React.createElement("div", { className: "chatButton chatError", id: "chat-blocked-popover-selector" },
21
- React.createElement(Popover, { "aria-label": t('Cannot connect to chat support'), alertSeverityVariant: 'danger', position: PopoverPosition.top, hasAutoWidth: true, maxWidth: '420px', headerIcon: React.createElement(ExclamationCircleIcon, { className: "pf-v5-u-danger-color-100" }), headerComponent: "h1", headerContent: React.createElement(Trans, null, "Cannot connect to chat support"), bodyContent: param === 'cookie' ? (React.createElement("p", { className: "pf-v5-u-px-md" },
21
+ React.createElement(Popover, { "aria-label": t('Cannot connect to chat support'), alertSeverityVariant: 'danger', position: PopoverPosition.top, hasAutoWidth: true, maxWidth: '420px', headerIcon: React.createElement(ExclamationCircleIcon, { className: "pf-v6-u-danger-color-100" }), headerComponent: "h1", headerContent: React.createElement(Trans, null, "Cannot connect to chat support"), bodyContent: param === 'cookie' ? (React.createElement("p", { className: "pf-v6-u-px-md" },
22
22
  React.createElement(Trans, null,
23
23
  "Accept functional cookies in your",
24
24
  ' ',
@@ -27,7 +27,7 @@ export const EmbeddedServiceChat = () => {
27
27
  document.querySelector('#teconsent a[role="link"]').click();
28
28
  } }, "cookie preferences"),
29
29
  ' ',
30
- "to enable the Red Hat Chat Support, then refresh page."))) : (React.createElement("p", { className: "pf-v5-u-px-md" },
30
+ "to enable the Red Hat Chat Support, then refresh page."))) : (React.createElement("p", { className: "pf-v6-u-px-md" },
31
31
  React.createElement(Trans, null, "There are multiple problems that can cause this error."),
32
32
  React.createElement("br", null),
33
33
  React.createElement("a", { href: `https://access.redhat.com/articles/313583#${hasBlockedByBrowser
@@ -36,12 +36,12 @@ export const EmbeddedServiceChat = () => {
36
36
  ? 'troubleshoot_network'
37
37
  : ''}`, target: "_blank", rel: "noreferrer noopener" },
38
38
  React.createElement(Trans, null, "See a list of possible causes.")))), isVisible: isBlockedErrorBoxVisible, shouldClose: shouldClose, shouldOpen: shouldOpen },
39
- React.createElement(Button, { variant: ButtonVariant.link, className: "pf-v5-u-m-0 pf-v5-u-p-0" },
39
+ React.createElement(Button, { variant: ButtonVariant.link, className: "pf-v6-u-m-0 pf-v6-u-p-0" },
40
40
  React.createElement(ChatSVGIcon, null)))));
41
41
  if (chatServiceNotAvailable)
42
42
  return React.createElement(React.Fragment, null);
43
43
  return loadingChat ? (React.createElement("div", { className: "chatButton" },
44
- React.createElement(Spinner, { diameter: "28px", className: "pf-v5-u-m-xs" }))) : hasBlockedByCookie && chatClicked && document.querySelector('#teconsent a[role="link"]') !== null ? (chatErrorMessagePopover('cookie')) : (hasBlockedByBrowser || hasChatDomainsBlocked) && chatClicked ? (chatErrorMessagePopover()) : !isChatStarted ? (React.createElement("div", { className: "chatButton", onClick: () => {
44
+ React.createElement(Spinner, { diameter: "28px", className: "pf-v6-u-m-xs" }))) : hasBlockedByCookie && chatClicked && document.querySelector('#teconsent a[role="link"]') !== null ? (chatErrorMessagePopover('cookie')) : (hasBlockedByBrowser || hasChatDomainsBlocked) && chatClicked ? (chatErrorMessagePopover()) : !isChatStarted ? (React.createElement("div", { className: "chatButton", onClick: () => {
45
45
  onStartChat();
46
46
  setChatClicked(true);
47
47
  }, "data-tracking-id": "embedded-service-chat", ref: componentRef, id: "chat-bot-wrapper" },
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  };
10
10
  import './hostnameAwarenessModal.css';
11
11
  import { accounts } from '@cee-eng/hydrajs';
12
- import { Button, Checkbox, Modal, ModalVariant, Spinner, Switch, Tooltip } from '@patternfly/react-core';
12
+ import { Button, Checkbox, Modal, ModalFooter, ModalVariant, Spinner, Switch, Tooltip } from '@patternfly/react-core';
13
13
  import InfoIcon from '@patternfly/react-icons/dist/js/icons/info-circle-icon';
14
14
  import { useFetch } from '@rh-support/components';
15
15
  import { ability, CaseListFields, resourceActions, resources } from '@rh-support/user-permissions';
@@ -112,15 +112,15 @@ export const HostnameAwarenessModal = () => {
112
112
  return (React.createElement(React.Fragment, null,
113
113
  React.createElement(Switch, { label: "Share hostnames", isChecked: isHostnamesChecked, onChange: onHostnameSwitchChange, className: "push-top-narrow" }),
114
114
  React.createElement(Tooltip, { content: shareHostnamesClarificationCopy, position: "right" },
115
- React.createElement(InfoIcon, { className: "pf-v5-u-ml-sm hostnameInfoIcon" })),
116
- isFetchingUpdateHostnameDefault && (React.createElement(Spinner, { size: "lg", className: "pf-v5-u-ml-sm hostnameSpinner", "aria-label": "Hostname loading" }))));
115
+ React.createElement(InfoIcon, { className: "pf-v6-u-ml-sm hostnameInfoIcon" })),
116
+ isFetchingUpdateHostnameDefault && (React.createElement(Spinner, { size: "lg", className: "pf-v6-u-ml-sm hostnameSpinner", "aria-label": "Hostname loading" }))));
117
117
  };
118
- return (React.createElement(Modal, { variant: ModalVariant.medium, title: "Share hostnames with Red Hat?", isOpen: isModalOpen, onClose: onCloseModal, actions: [
119
- React.createElement(Button, { "data-tracking-id": "close-hostname-modal", key: "close", variant: "primary", onClick: onCloseModal, isDisabled: isFetchingUpdateHostnameDefault }, "Close"),
120
- React.createElement("div", { className: "dontAskCheckbox" },
121
- React.createElement(Checkbox, { isChecked: !!doNotShowModal, label: "Don't ask me again", id: "dont-ask-again", "data-tracking-id": "dont-ask-again-hostname-modal", onChange: onDoNotAskAgain })),
122
- ] },
118
+ return (React.createElement(Modal, { variant: ModalVariant.medium, title: "Share hostnames with Red Hat?", isOpen: isModalOpen, onClose: onCloseModal },
123
119
  React.createElement("div", null,
124
120
  React.createElement(Trans, null, "Red Hat Support cannot currently access hostnames that have been entered on a case. You can share this information at any time to improve your support experience, or you can ignore this.")),
125
- modalBody()));
121
+ modalBody(),
122
+ React.createElement(ModalFooter, null,
123
+ React.createElement(Button, { "data-tracking-id": "close-hostname-modal", key: "close", variant: "primary", onClick: onCloseModal, isDisabled: isFetchingUpdateHostnameDefault }, "Close"),
124
+ React.createElement("div", { className: "dontAskCheckbox" },
125
+ React.createElement(Checkbox, { isChecked: !!doNotShowModal, label: "Don't ask me again", id: "dont-ask-again", "data-tracking-id": "dont-ask-again-hostname-modal", onChange: onDoNotAskAgain })))));
126
126
  };
@@ -1,4 +1,4 @@
1
- div.dontAskCheckbox div.pf-v5-c-check label.pf-v5-c-check__label {
1
+ div.dontAskCheckbox div.pf-v6-c-check label.pf-v6-c-check__label {
2
2
  line-height: 1;
3
3
  }
4
4
 
@@ -28,6 +28,6 @@ export function NewFeatureLabel(props) {
28
28
  onFeatureDismiss();
29
29
  };
30
30
  return (React.createElement(Popover, Object.assign({}, popoverProps, conditionalProps, { hasAutoWidth: true, onHidden: onHidden }),
31
- React.createElement(Label, { color: "green", className: "pf-v5-u-ml-sm", icon: React.createElement(InfoCircleIcon, null) },
31
+ React.createElement(Label, { color: "green", className: "pf-v6-u-ml-sm", icon: React.createElement(InfoCircleIcon, null) },
32
32
  React.createElement(Trans, null, "New"))));
33
33
  }
@@ -1,4 +1,4 @@
1
- import { Button, Modal, ModalVariant } from '@patternfly/react-core';
1
+ import { Button, Modal, ModalFooter, ModalVariant } from '@patternfly/react-core';
2
2
  import React, { useContext, useState } from 'react';
3
3
  import { GlobalMetadataStateContext } from '../../context/GlobalMetadataContext';
4
4
  export function CSSUserModal({ onConfirmTraditionalSupportAgreement, display }) {
@@ -21,14 +21,15 @@ export function CSSUserModal({ onConfirmTraditionalSupportAgreement, display })
21
21
  if (!display || !isConfirmedStateSideSupport)
22
22
  return null;
23
23
  return (React.createElement(React.Fragment, null,
24
- React.createElement(Modal, { variant: ModalVariant.medium, title: 'Choose the type of support you want', isOpen: isConfirmedStateSideSupport && showSupportTypeModal, onClose: () => setShowSupportTypeModal(false), actions: [
24
+ React.createElement(Modal, { variant: ModalVariant.medium, title: 'Choose the type of support you want', isOpen: isConfirmedStateSideSupport && showSupportTypeModal, onClose: () => setShowSupportTypeModal(false) },
25
+ "You have a Confirmed Stateside Support account",
26
+ React.createElement(ModalFooter, null,
25
27
  React.createElement(Button, { key: "confirmed-stateside-support-btn", "data-tracking-id": "confirmed-stateside-support-btn", "aria-label": "Confirmed stateside support", onClick: handleCSSclick }, "Confirmed Stateside Support"),
26
- React.createElement(Button, { variant: "secondary", key: "traditional-support-btn", "data-tracking-id": "traditional-support-btn", "aria-label": "Traditional support", onClick: handleTraditionalSupportClick }, "Traditional Support"),
27
- ] }, "You have a Confirmed Stateside Support account"),
28
- React.createElement(Modal, { variant: ModalVariant.medium, title: 'Traditional Support', isOpen: isConfirmedStateSideSupport && showTraditionalSupportAgreement, onClose: () => setShowTraditionalSupportAgreement(false), actions: [
29
- React.createElement(Button, { variant: "secondary", key: "traditional-support-back-button", "data-tracking-id": "traditional-support-back-button", "aria-label": "Traditional support back button", onClick: () => setShowTraditionalSupportAgreement(false) }, "Back"),
30
- React.createElement(Button, { key: "agree-traditional-support-button", "data-tracking-id": "agree-traditional-support-button", "aria-label": "Agree traditional support button", onClick: handleTraditionalSupportAgreement }, "I agree"),
31
- ] },
28
+ React.createElement(Button, { variant: "secondary", key: "traditional-support-btn", "data-tracking-id": "traditional-support-btn", "aria-label": "Traditional support", onClick: handleTraditionalSupportClick }, "Traditional Support"))),
29
+ React.createElement(Modal, { variant: ModalVariant.medium, title: 'Traditional Support', isOpen: isConfirmedStateSideSupport && showTraditionalSupportAgreement, onClose: () => setShowTraditionalSupportAgreement(false) },
32
30
  React.createElement("p", null, "By continuing you agree not to transmit Controlled Unclassified Information(CUI) or export-controlled information to the Red Hat Customer Portal."),
33
- React.createElement("p", { className: "pf-v5-u-pt-md" }, "The Customer Portal is not certified to store data regulated by the US government, including data covered by ITAR or EAR (Export Administration Regulations)."))));
31
+ React.createElement("p", { className: "pf-v6-u-pt-md" }, "The Customer Portal is not certified to store data regulated by the US government, including data covered by ITAR or EAR (Export Administration Regulations)."),
32
+ React.createElement(ModalFooter, null,
33
+ React.createElement(Button, { variant: "secondary", key: "traditional-support-back-button", "data-tracking-id": "traditional-support-back-button", "aria-label": "Traditional support back button", onClick: () => setShowTraditionalSupportAgreement(false) }, "Back"),
34
+ React.createElement(Button, { key: "agree-traditional-support-button", "data-tracking-id": "agree-traditional-support-button", "aria-label": "Agree traditional support button", onClick: handleTraditionalSupportAgreement }, "I agree")))));
34
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CloseCaseModal.d.ts","sourceRoot":"","sources":["../../../../src/components/SharedModals/CloseCaseModal.tsx"],"names":[],"mappings":"AAAA,OAAO,uBAAuB,CAAC;AAgB/B,OAAO,KAAmB,MAAM,OAAO,CAAC;AAGxC,UAAU,MAAM;IACZ,SAAS,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;CACvB;AAUD,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,qBAmK3C"}
1
+ {"version":3,"file":"CloseCaseModal.d.ts","sourceRoot":"","sources":["../../../../src/components/SharedModals/CloseCaseModal.tsx"],"names":[],"mappings":"AAAA,OAAO,uBAAuB,CAAC;AAoB/B,OAAO,KAAmB,MAAM,OAAO,CAAC;AAGxC,UAAU,MAAM;IACZ,SAAS,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;CACvB;AAUD,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,qBAgL3C"}
@@ -8,9 +8,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  });
9
9
  };
10
10
  import './CloseCaseModal.scss';
11
- import { Button, ButtonVariant, Form, FormGroup, FormHelperText, HelperText, HelperTextItem, Modal, ModalVariant, TextArea, } from '@patternfly/react-core';
12
- import { Select, SelectOption } from '@patternfly/react-core/deprecated';
11
+ import { Button, ButtonVariant, Form, FormGroup, FormHelperText, HelperText, HelperTextItem, Modal, ModalBody, ModalFooter, ModalHeader, ModalVariant, TextArea, } from '@patternfly/react-core';
12
+ import { SingleSelectDropdown } from '@rh-support/components';
13
13
  import isEmpty from 'lodash/isEmpty';
14
+ import map from 'lodash/map';
14
15
  import React, { useState } from 'react';
15
16
  import { Trans, useTranslation } from 'react-i18next';
16
17
  const resolutionsWithDescription = ['Other'];
@@ -25,15 +26,12 @@ export function CloseCaseModal(props) {
25
26
  const [showTextArea, setShowTextArea] = useState(false);
26
27
  const [selectedResolution, setSelectedResolution] = useState('');
27
28
  const [resolutionDescription, setResolutionDescription] = useState('');
28
- const [showDropdown, setShowDropdown] = useState(false);
29
- const onDropdownToggle = (toggle) => setShowDropdown(toggle);
30
29
  const [showValidationError, setShowValidationError] = useState(false);
31
30
  const isCaseListPage = !props.caseNumber;
32
- const onResolutionChange = (event, resolution) => {
33
- setSelectedResolution(resolution);
31
+ const onResolutionChange = (option) => {
32
+ setSelectedResolution(option.value);
34
33
  setShowValidationError(false);
35
- resolutionsWithDescription.includes(resolution) ? setShowTextArea(true) : setShowTextArea(false);
36
- onDropdownToggle(false);
34
+ resolutionsWithDescription.includes(option.value) ? setShowTextArea(true) : setShowTextArea(false);
37
35
  };
38
36
  const getCommentBody = () => {
39
37
  return `**Reason for closing case:** \n${selectedResolution}${resolutionsWithDescription.includes(selectedResolution) ? `. ${resolutionDescription}` : ''}`;
@@ -61,34 +59,46 @@ export function CloseCaseModal(props) {
61
59
  setResolutionDescription(description);
62
60
  };
63
61
  const isResolutionDescEmpty = showTextArea && isEmpty(resolutionDescription === null || resolutionDescription === void 0 ? void 0 : resolutionDescription.trim());
64
- return (React.createElement(Modal, { id: "case-close-modal", title: t(isCaseListPage ? 'Do you want to close the selected cases?' : 'Do you want to close this case?'), "aria-describedby": "case-close-modal", isOpen: true, onClose: props.onClose, showClose: true, actions: [
62
+ const getDropdownOptions = map(resolutionOptions, (option) => ({
63
+ label: option,
64
+ value: option,
65
+ }));
66
+ const getSelectedDropdownOption = {
67
+ label: selectedResolution,
68
+ value: selectedResolution,
69
+ };
70
+ return (React.createElement(Modal, { id: "case-close-modal", "aria-describedby": "case-close-modal", isOpen: true, onClose: props.onClose, variant: ModalVariant.medium },
71
+ React.createElement(ModalHeader, null,
72
+ React.createElement("h2", null,
73
+ isCaseListPage && React.createElement(Trans, null, "Do you want to close the selected cases?"),
74
+ !isCaseListPage && React.createElement(Trans, null, "Do you want to close this case?"))),
75
+ React.createElement(ModalBody, null,
76
+ React.createElement("div", { className: "pf-v6-u-mb-md" }, !isCaseListPage ? (React.createElement("p", { className: "pf-v6-u-text-color-subtle pf-v6-u-font-size-sm" },
77
+ React.createElement(Trans, null,
78
+ "Confirming will set the status of this case ",
79
+ React.createElement("strong", null, "closed"),
80
+ ". You can still view the case after it closes."))) : (React.createElement(React.Fragment, null,
81
+ React.createElement("p", { className: "pf-v6-u-text-color-subtle pf-v6-u-font-size-sm" },
82
+ React.createElement(Trans, null,
83
+ "Confirming will set the status of every case to ",
84
+ React.createElement("strong", null, "closed"),
85
+ ". You can still view a case after closing.")),
86
+ React.createElement("p", { className: "pf-v6-u-text-color-subtle pf-v6-u-font-size-sm" },
87
+ React.createElement(Trans, null, "This action will also reset the currently selected filters to default state."))))),
88
+ React.createElement(Form, { className: "close-case-modal-form" },
89
+ React.createElement(FormGroup, { label: t('Resolution'), isRequired: true, fieldId: "case-resolution" },
90
+ React.createElement(FormHelperText, null,
91
+ React.createElement(HelperText, null,
92
+ isCaseListPage && !(showValidationError && !selectedResolution) && (React.createElement(HelperTextItem, null,
93
+ React.createElement(Trans, null, "All of the selected cases will have the same resolution in bulk edit."))),
94
+ showValidationError && !selectedResolution && (React.createElement(HelperTextItem, { variant: "error" },
95
+ React.createElement(Trans, null, "Required field"))))),
96
+ React.createElement(SingleSelectDropdown, { placeholder: t('Select an option that best fits'), dataTrackingId: "case-resolution", options: getDropdownOptions, selected: getSelectedDropdownOption, isDisabled: props.isUpdating, isInvalid: showValidationError && !selectedResolution, onSelect: onResolutionChange })),
97
+ showTextArea && (React.createElement(FormGroup, { label: t('Please describe your resolution'), type: "text", isRequired: true, fieldId: "close-case-description" },
98
+ React.createElement(TextArea, { validated: showValidationError && !resolutionDescription ? 'error' : 'default', isRequired: true, id: "close-case-description", name: "close-case-description", "aria-describedby": "close-case-description", value: resolutionDescription, placeholder: t('Please describe your resolution to help us better understand.'), onChange: (_event, description) => onDescriptionChange(description), isDisabled: props.isUpdating, resizeOrientation: "vertical" }))))),
99
+ React.createElement(ModalFooter, null,
65
100
  React.createElement(Button, { key: "submit-description", variant: ButtonVariant.primary, onClick: onSubmit, isLoading: props.isUpdating, isDisabled: isResolutionDescEmpty || showValidationError || props.isUpdating, "data-tracking-id": "close-case-description-modal-submit" },
66
101
  React.createElement(Trans, null, "Close case")),
67
102
  React.createElement(Button, { key: "close-modal", variant: ButtonVariant.secondary, onClick: props.onClose, isDisabled: props.isUpdating, "data-tracking-id": "close-case-description-modal-cancel" },
68
- React.createElement(Trans, null, "Cancel")),
69
- ], variant: ModalVariant.medium },
70
- React.createElement("div", { className: "pf-v5-u-mb-md" }, !isCaseListPage ? (React.createElement("p", null,
71
- React.createElement(Trans, null,
72
- "Confirming will set the status of this case ",
73
- React.createElement("strong", null, "closed"),
74
- ". You can still view the case after it closes."))) : (React.createElement(React.Fragment, null,
75
- React.createElement("p", null,
76
- React.createElement(Trans, null,
77
- "Confirming will set the status of every case to ",
78
- React.createElement("strong", null, "closed"),
79
- ". You can still view a case after closing.")),
80
- React.createElement("p", null,
81
- React.createElement(Trans, null, "This action will also reset the currently selected filters to default state."))))),
82
- React.createElement(Form, { className: "close-case-modal-form" },
83
- React.createElement(FormGroup, { label: t('Resolution'), isRequired: true, fieldId: "case-resolution" },
84
- React.createElement(FormHelperText, null,
85
- React.createElement(HelperText, null,
86
- isCaseListPage && !(showValidationError && !selectedResolution) && (React.createElement(HelperTextItem, null,
87
- React.createElement(Trans, null, "All of the selected cases will have the same resolution in bulk edit."))),
88
- showValidationError && !selectedResolution && (React.createElement(HelperTextItem, { variant: "error", hasIcon: true },
89
- React.createElement(Trans, null, "Required field"))))),
90
- React.createElement(Select, { "aria-label": t('Select an option that best fits'), id: "case-resolution", selections: selectedResolution, onSelect: onResolutionChange, isOpen: showDropdown, isDisabled: props.isUpdating, menuAppendTo: document.body, validated: showValidationError && !selectedResolution ? 'error' : 'default', placeholderText: t('Select an option that best fits'), onToggle: (_event, toggle) => onDropdownToggle(toggle) }, resolutionOptions.map((option, index) => (React.createElement(SelectOption, { key: index, value: option },
91
- React.createElement(Trans, null, option)))))),
92
- showTextArea && (React.createElement(FormGroup, { label: t('Please describe your resolution'), type: "text", isRequired: true, fieldId: "close-case-description" },
93
- React.createElement(TextArea, { validated: showValidationError && !resolutionDescription ? 'error' : 'default', isRequired: true, id: "close-case-description", name: "close-case-description", "aria-describedby": "close-case-description", value: resolutionDescription, placeholder: t('Please describe your resolution to help us better understand.'), onChange: (_event, description) => onDescriptionChange(description), isDisabled: props.isUpdating, resizeOrientation: "vertical" }))))));
103
+ React.createElement(Trans, null, "Cancel")))));
94
104
  }
@@ -1,10 +1,10 @@
1
1
  // To override close case modal font weight - PCM-11644
2
- div#case-close-modal.pf-v5-c-modal-box__body {
3
- form.pf-v5-c-form.close-case-modal-form {
4
- div.pf-v5-c-form__group {
5
- div.pf-v5-c-form__group-label {
6
- label.pf-v5-c-form__label {
7
- span.pf-v5-c-form__label-text {
2
+ div#case-close-modal.pf-v6-c-modal-box__body {
3
+ form.pf-v6-c-form.close-case-modal-form {
4
+ div.pf-v6-c-form__group {
5
+ div.pf-v6-c-form__group-label {
6
+ label.pf-v6-c-form__label {
7
+ span.pf-v6-c-form__label-text {
8
8
  font-weight: 600 !important;
9
9
  }
10
10
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rh-support/react-context",
3
- "version": "2.5.27",
3
+ "version": "2.5.29",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "registry": "https://registry.npmjs.org"
@@ -27,8 +27,8 @@
27
27
  ],
28
28
  "peerDependencies": {
29
29
  "@cee-eng/hydrajs": "4.18.57",
30
- "@patternfly/react-core": "5.4.2",
31
- "@patternfly/react-icons": "5.4.2",
30
+ "@patternfly/react-core": "6.2.1",
31
+ "@patternfly/react-icons": "6.2.1",
32
32
  "i18next": "^23.15.0",
33
33
  "lodash": "^4.17.21",
34
34
  "react": "18.2.0",
@@ -38,12 +38,12 @@
38
38
  },
39
39
  "dependencies": {
40
40
  "@cee-eng/hydrajs": "4.18.57",
41
- "@patternfly/react-core": "5.4.2",
42
- "@patternfly/react-icons": "5.4.2",
43
- "@rh-support/components": "2.5.25",
41
+ "@patternfly/react-core": "6.2.1",
42
+ "@patternfly/react-icons": "6.2.1",
43
+ "@rh-support/components": "2.5.27",
44
44
  "@rh-support/types": "2.0.5",
45
- "@rh-support/user-permissions": "2.5.17",
46
- "@rh-support/utils": "2.5.16",
45
+ "@rh-support/user-permissions": "2.5.18",
46
+ "@rh-support/utils": "2.5.17",
47
47
  "i18next": "^23.15.0",
48
48
  "localforage": "^1.10.0",
49
49
  "lodash": "^4.17.21",
@@ -93,5 +93,5 @@
93
93
  "defaults and supports es6-module",
94
94
  "maintained node versions"
95
95
  ],
96
- "gitHead": "1784fd712681254600c3586c364804051ddfd8a7"
96
+ "gitHead": "3f2c96a3a976d37cffe4052f7c7bfefbf1018949"
97
97
  }