@grafana/ui
Version:
Grafana Components Library
34 lines (31 loc) • 905 B
JavaScript
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
import { useState } from 'react';
import { ContextMenu } from './ContextMenu.mjs';
;
const WithContextMenu = ({ children, renderMenuItems, focusOnOpen = true }) => {
const [isMenuOpen, setIsMenuOpen] = useState(false);
const [menuPosition, setMenuPosition] = useState({ x: 0, y: 0 });
return /* @__PURE__ */ jsxs(Fragment, { children: [
children({
openMenu: (e) => {
setIsMenuOpen(true);
setMenuPosition({
x: e.pageX,
y: e.pageY - window.scrollY
});
}
}),
isMenuOpen && /* @__PURE__ */ jsx(
ContextMenu,
{
onClose: () => setIsMenuOpen(false),
x: menuPosition.x,
y: menuPosition.y,
renderMenuItems,
focusOnOpen
}
)
] });
};
export { WithContextMenu };
//# sourceMappingURL=WithContextMenu.mjs.map