UNPKG

@boomerang-io/carbon-addons-boomerang-react

Version:
86 lines (79 loc) 5.24 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var React = require('react'); var react = require('@carbon/react'); var icons = require('@carbon/react/icons'); var HeaderMenuItem = require('../Header/HeaderMenuItem.js'); var reactQuery = require('react-query'); var servicesConfig = require('../../config/servicesConfig.js'); var settings = require('../../internal/settings.js'); function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; } var React__default = /*#__PURE__*/_interopDefault(React); /* IBM Confidential 694970X, 69497O0 © Copyright IBM Corp. 2022, 2024 */ function SupportCenter({ closeModal, isOpen, supportRedirect, baseServicesUrl, enablePartner, partnerEmailId }) { const [doNotAskAgain, setDoNotAskAgain] = React__default.default.useState(false); const queryClient = reactQuery.useQueryClient(); const profileUrl = servicesConfig.serviceUrl.resourceUserProfile({ baseServicesUrl }); const handleCheckboxChange = (event) => { const shouldNotAskAgain = event.target.checked; setDoNotAskAgain(shouldNotAskAgain); handleSubmit(!shouldNotAskAgain); }; const { mutateAsync: mutateUserProfile, } = reactQuery.useMutation(servicesConfig.resolver.patchUserProfile, { onSuccess: () => { queryClient.invalidateQueries(profileUrl); }, }); async function handleSubmit(showSupport) { const body = { showSupport }; try { await mutateUserProfile({ baseServicesUrl, body }); } catch (e) { // noop } } return (React__default.default.createElement(react.ComposedModal, { "aria-label": "SupportCenter", open: isOpen, className: `${settings.prefix}--support-description-modal`, onClose: closeModal, onKeyDown: (e) => e.stopPropagation(), "data-testid": "composed-modal-supportcenter" }, React__default.default.createElement(react.ModalHeader, { "data-testid": "supportcenter-modal-header", title: "Having an issue?", closeModal: closeModal }), React__default.default.createElement(react.ModalBody, null, enablePartner ? React__default.default.createElement("div", { className: `${settings.prefix}--bmrg-feedback` }, React__default.default.createElement("p", null, "Please email any issues with a description and images to", " " /* We need to force a space before the link tag */, React__default.default.createElement("a", { href: "mailto:ica-support@ibm.com" }, partnerEmailId), ".")) : React__default.default.createElement("div", { className: `${settings.prefix}--bmrg-feedback` }, React__default.default.createElement("p", null, "Review your open cases or open a new case at IBM Support Center. For support tickets related to IBM Consulting Advantage, use Product \"Consulting Advantage\"."), "\u00A0", React__default.default.createElement(react.Checkbox, { id: "supportCheckboxId", "data-testid": "supportcenter-modal-checkbox", labelText: "Don't show again. Always proceed to IBM Support Center.", invalidText: "Error message goes here", onChange: handleCheckboxChange, checked: doNotAskAgain, warnText: "Warning message goes here" }))), React__default.default.createElement(react.ModalFooter, null, enablePartner ? "" : React__default.default.createElement(react.Button, { kind: "secondary", "data-testid": "supportcenter-modal-cancel-button", onClick: closeModal }, "Cancel"), enablePartner ? React__default.default.createElement(react.Button, { "data-modal-primary-focus": true, kind: "primary", "data-testid": "supportcenter-modal-close-button", onClick: closeModal }, "Close") : React__default.default.createElement(react.Button, { "data-modal-primary-focus": true, kind: "primary", "data-testid": "supportcenter-modal-continue-button", onClick: supportRedirect }, "Continue to IBM Support Center")))); } function SupportCenterMenuItem(props) { const menuItemRef = React__default.default.useRef(null); const [isOpen, setIsOpen] = React__default.default.useState(false); const handleClose = () => { setIsOpen(false); setTimeout(() => { menuItemRef.current?.focus(); }, 0); }; const supportHandle = () => { window.open(props?.supportLink, '_blank', 'noopener,noreferrer'); handleClose(); }; return (React__default.default.createElement(React__default.default.Fragment, null, React__default.default.createElement(HeaderMenuItem.default, { icon: React__default.default.createElement(icons.HelpDesk, null), onClick: () => setIsOpen(!isOpen), ref: menuItemRef, text: "Support Center", "data-testid": "supportcenter-modal-headermenuitem", type: "button" }), React__default.default.createElement(SupportCenter, { isOpen: isOpen, closeModal: handleClose, supportRedirect: supportHandle, ...props }))); } exports.SupportCenterMenuItem = SupportCenterMenuItem; exports.default = SupportCenter;