@heycar-uikit/core
Version:
The React UI library from HeyCar
38 lines (35 loc) • 1.5 kB
JavaScript
import { _ as __assign } from '../tslib.es6-4ac54363.js';
import { useCallback } from 'react';
import { headerClickTracking } from '../constants/Header.constants.js';
var useNavigationItem = function (activeNavItem, setActiveNavItem, resetMenuState) {
var toggleSubNav = useCallback(function (id, isActive, force) {
var nextActiveId = force || !isActive ? id : undefined;
setActiveNavItem(nextActiveId);
}, [setActiveNavItem]);
var keyboardOpen = useCallback(function (e, id, isActive) {
if (e.code === 'Space') {
e.preventDefault();
toggleSubNav(id, isActive);
}
}, [toggleSubNav]);
var closeSiblings = 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(__assign(__assign({}, headerClickTracking), track.obj));
if (typeof onClick === 'function')
onClick();
};
return {
toggleSubNav: toggleSubNav,
keyboardOpen: keyboardOpen,
closeSiblings: closeSiblings,
itemOnClick: itemOnClick,
};
};
export { useNavigationItem };