import { Menu, MenuItem, SubMenu } from '@szhsin/react-menu'; import { cloneElement } from 'preact'; import { useRef } from 'preact/hooks'; import Menu2 from './menu2'; function MenuConfirm({ subMenu = false, confirm = true, confirmLabel, menuItemClassName, menuFooter, ...props }) { const { children, onClick, ...restProps } = props; if (!confirm) { if (subMenu) return ; if (onClick) { return cloneElement(children, { onClick, }); } return children; } const Parent = subMenu ? SubMenu : Menu2; const menuRef = useRef(); return ( { if (e.pointerType === 'touch') { menuRef.current?.openMenu?.(); } }, onPointerLeave: (e) => { if (e.pointerType === 'touch') { menuRef.current?.openMenu?.(); } }, }} > {confirmLabel} {menuFooter} ); } export default MenuConfirm;