@heycar-uikit/core
Version:
The React UI library from HeyCar
40 lines (36 loc) • 1.64 kB
JavaScript
Object.defineProperty(exports, '__esModule', { value: true });
var tslib_es6 = require('../tslib.es6-0efb545c.js');
var React = require('react');
var constants_Header_constants = require('../constants/Header.constants.js');
var useNavigationItem = function (activeNavItem, setActiveNavItem, resetMenuState) {
var toggleSubNav = React.useCallback(function (id, isActive, force) {
var nextActiveId = force || !isActive ? id : undefined;
setActiveNavItem(nextActiveId);
}, [setActiveNavItem]);
var keyboardOpen = React.useCallback(function (e, id, isActive) {
if (e.code === 'Space') {
e.preventDefault();
toggleSubNav(id, isActive);
}
}, [toggleSubNav]);
var closeSiblings = React.useCallback(function (currentId, hasSubNav) {
if (currentId !== activeNavItem && hasSubNav)
setActiveNavItem(undefined);
}, [activeNavItem, setActiveNavItem]);
var itemOnClick = function (track, onClick, closeMenu) {
if (closeMenu === void 0) { closeMenu = true; }
if (closeMenu && resetMenuState)
resetMenuState();
if (track && typeof (track === null || track === void 0 ? void 0 : track.fn) === 'function')
track.fn(tslib_es6.__assign(tslib_es6.__assign({}, constants_Header_constants.headerClickTracking), track.obj));
if (typeof onClick === 'function')
onClick();
};
return {
toggleSubNav: toggleSubNav,
keyboardOpen: keyboardOpen,
closeSiblings: closeSiblings,
itemOnClick: itemOnClick,
};
};
exports.useNavigationItem = useNavigationItem;