UNPKG

@react-md/menu

Version:

Create menus that auto-position themselves within the viewport and adhere to the accessibility guidelines

28 lines 1.07 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useMenuClick = void 0; var react_1 = require("react"); var utils_1 = require("@react-md/utils"); /** * This hook is used to create a click handler on the menu that will close the * menu when any `MenuItem` is clicked. */ function useMenuClick(_a) { var onClick = _a.onClick, onRequestClose = _a.onRequestClose; var cache = utils_1.useRefCache({ onClick: onClick, onRequestClose: onRequestClose }); return react_1.useCallback(function (event) { var _a = cache.current, onClick = _a.onClick, onRequestClose = _a.onRequestClose; if (onClick) { onClick(event); } var target = event.target; if (!target || (event.currentTarget !== target && !target.closest("[aria-haspopup]"))) { onRequestClose(); } // disabled since useRefCache // eslint-disable-next-line react-hooks/exhaustive-deps }, []); } exports.useMenuClick = useMenuClick; //# sourceMappingURL=useMenuClick.js.map