@boomerang-io/carbon-addons-boomerang-react
Version:
Carbon Addons for Boomerang apps
37 lines (34 loc) • 1.94 kB
JavaScript
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 };