UNPKG

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

Version:
64 lines (61 loc) 4.99 kB
import React from 'react'; import { useQuery } from 'react-query'; import { ComposedModal, ModalHeader, ModalBody, Loading } from '@carbon/react'; import { Information } from '@carbon/react/icons'; import HeaderMenuItem from '../Header/HeaderMenuItem.js'; import Error from '../ErrorMessage/ErrorMessage.js'; import TooltipHover from '../TooltipHover/TooltipHover.js'; import { resolver, serviceUrl } from '../../config/servicesConfig.js'; import { prefix } from '../../internal/settings.js'; /* IBM Confidential 694970X, 69497O0 © Copyright IBM Corp. 2022, 2025 */ function AboutPlatform({ baseServicesUrl, closeModal, isOpen = false, name }) { const platformVersioUrl = serviceUrl.getPlatformVersion({ baseServicesUrl }); const { data: platformVersionData, isLoading: isPlatformVersionLoading, isError: isPlatformVersionError, } = useQuery({ queryKey: platformVersioUrl, queryFn: resolver.query(platformVersioUrl, null), enabled: isOpen, }); return (React.createElement(ComposedModal, { open: isOpen, className: `${prefix}--bmrg-aboutPlatform-container ${prefix}--bmrg-header-modal ${prefix}--bmrg-aboutPlatform-modalheader`, onClose: closeModal }, React.createElement(ModalHeader, { className: `${prefix}--bmrg-aboutPlatform-modaltitle`, title: `About ${name}`, closeModal: closeModal }), isPlatformVersionLoading ? (React.createElement(ModalBody, { style: { display: "flex", alignItems: "center", justifyContent: "center" } }, React.createElement(Loading, { withOverlay: false }))) : isPlatformVersionError ? (React.createElement(ModalBody, { style: { display: "flex", alignItems: "center", justifyContent: "center" } }, React.createElement(Error, null))) : platformVersionData ? (React.createElement(ModalBody, null, React.createElement("div", null, React.createElement("div", { className: `${prefix}--bmrg-aboutPlatform-platform-version` }, React.createElement("p", { className: `${prefix}--bmrg-aboutPlatform-platform-version-text` }, `Version ${platformVersionData.platformVersion}`), platformVersionData.platformVersionError ? (React.createElement(TooltipHover, { direction: "right", tooltipText: `Failed to retrieve the versioning of one or more components. Displaying only the ${name} platform version.` }, React.createElement(Information, { size: 16, fill: "currentColor" }))) : null), React.createElement("h5", { className: `${prefix}--bmrg-aboutPlatform-component-header` }, "Components"), React.createElement("ul", null, React.createElement("li", { className: `${prefix}--bmrg-aboutPlatform-li-between` }, React.createElement("span", { className: `${prefix}--bmrg-aboutPlatform-li` }, "Advantage Core"), React.createElement("span", { className: `${prefix}--bmrg-aboutPlatform-li-version` }, platformVersionData.version)), React.createElement("li", { className: `${prefix}--bmrg-aboutPlatform-li-between` }, React.createElement("span", { className: `${prefix}--bmrg-aboutPlatform-li` }, "Assistants "), React.createElement("span", { className: `${prefix}--bmrg-aboutPlatform-li-version` }, platformVersionData.assistantVersion)), React.createElement("li", { className: `${prefix}--bmrg-aboutPlatform-li-between` }, React.createElement("span", { className: `${prefix}--bmrg-aboutPlatform-li` }, "Agents"), React.createElement("span", { className: `${prefix}--bmrg-aboutPlatform-li-version` }, platformVersionData.agentsVersion)), React.createElement("li", { className: `${prefix}--bmrg-aboutPlatform-li-between-last` }, React.createElement("span", { className: `${prefix}--bmrg-aboutPlatform-li` }, "Scribeflow"), React.createElement("span", { className: `${prefix}--bmrg-aboutPlatform-li-version` }, platformVersionData.scribeFlowVersion))), React.createElement("h1", { className: `${prefix}--bmrg-aboutPlatform-footer__header` }, "Copyright IBM Corp. 2022, 2025")))) : null)); } function AboutPlatformMenuItem(props) { const menuItemRef = React.useRef(null); const [isOpen, setIsOpen] = React.useState(false); const handleClose = () => { setIsOpen(false); setTimeout(() => { menuItemRef.current?.focus(); }, 0); }; return (React.createElement(React.Fragment, null, React.createElement(HeaderMenuItem, { icon: React.createElement(Information, null), onClick: () => setIsOpen(!isOpen), ref: menuItemRef, text: `About ${props.name}`, type: "button" }), React.createElement(AboutPlatform, { isOpen: isOpen, closeModal: handleClose, ...props }))); } export { AboutPlatformMenuItem, AboutPlatform as default };