UNPKG

@jbrowse/core

Version:

JBrowse 2 core libraries used by plugins

29 lines (28 loc) 1.51 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const jsx_runtime_1 = require("react/jsx-runtime"); const react_1 = require("react"); const Menu_1 = __importDefault(require("@jbrowse/core/ui/Menu")); const material_1 = require("@mui/material"); const mobx_react_1 = require("mobx-react"); const MenuButton = (0, mobx_react_1.observer)(function MenuButton({ children, menuItems, closeAfterItemClick = true, stopPropagation, setOpen, ...rest }) { const [anchorEl, setAnchorEl] = (0, react_1.useState)(); const isOpen = !!anchorEl; (0, react_1.useEffect)(() => { setOpen === null || setOpen === void 0 ? void 0 : setOpen(isOpen); }, [isOpen, setOpen]); return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(material_1.IconButton, { ...rest, onClick: event => { setAnchorEl(event.currentTarget); }, children: children }), (0, jsx_runtime_1.jsx)(Menu_1.default, { open: !!anchorEl, anchorEl: anchorEl, onClose: () => { setAnchorEl(undefined); }, onMenuItemClick: (_, callback) => { callback(); if (closeAfterItemClick) { setAnchorEl(undefined); } }, menuItems: menuItems })] })); }); exports.default = MenuButton;