UNPKG

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

Version:
37 lines (34 loc) 1.94 kB
import React from 'react'; import { ComposedModal, ModalHeader, ModalBody, ModalFooter, Button } from '@carbon/react'; import { Power } from '@carbon/react/icons'; import HeaderMenuItem from '../Header/HeaderMenuItem.js'; import { prefix } from '../../internal/settings.js'; /* IBM Confidential 694970X, 69497O0 © Copyright IBM Corp. 2022, 2024 */ function SignOut({ closeModal, isOpen, signOutLink }) { return (React.createElement(ComposedModal, { "aria-label": "Sign out", open: isOpen, className: `${prefix}--bmrg-signout-container ${prefix}--bmrg-header-modal`, onClose: closeModal }, React.createElement(ModalHeader, { title: "Sign out", closeModal: closeModal }), React.createElement(ModalBody, null, React.createElement("div", { className: `${prefix}--bmrg-signout` }, React.createElement("p", { className: `${prefix}--bmrg-signout__message` }, "Are you sure you'd like to leave us?"))), React.createElement(ModalFooter, null, React.createElement(Button, { "data-modal-primary-focus": true, kind: "secondary", onClick: closeModal }, "Cancel"), React.createElement(Button, { kind: "primary", role: "link", href: signOutLink }, "Sign Out")))); } function SignOutMenuItem(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(Power, null), onClick: () => setIsOpen(!isOpen), ref: menuItemRef, style: { color: "red" }, text: "Sign Out", type: "button", variant: "danger" }), React.createElement(SignOut, { isOpen: isOpen, closeModal: handleClose, ...props }))); } export { SignOutMenuItem, SignOut as default };