UNPKG

@heycar-uikit/core

Version:
36 lines (33 loc) 1.26 kB
import { useCallback } from 'react'; import { headerClickTracking } from '../constants/Header.constants.js'; const useNavigationItem = (activeNavItem, setActiveNavItem, resetMenuState) => { const toggleSubNav = useCallback((id, isActive, force) => { const nextActiveId = force || !isActive ? id : undefined; setActiveNavItem(nextActiveId); }, [setActiveNavItem]); const keyboardOpen = useCallback((e, id, isActive) => { if (e.code === 'Space') { e.preventDefault(); toggleSubNav(id, isActive); } }, [toggleSubNav]); const closeSiblings = useCallback((currentId, hasSubNav) => { if (currentId !== activeNavItem && hasSubNav) setActiveNavItem(undefined); }, [activeNavItem, setActiveNavItem]); const itemOnClick = (track, onClick, closeMenu = true) => { if (closeMenu && resetMenuState) resetMenuState(); if (track && typeof track?.fn === 'function') track.fn({ ...headerClickTracking, ...track.obj }); if (typeof onClick === 'function') onClick(); }; return { toggleSubNav, keyboardOpen, closeSiblings, itemOnClick, }; }; export { useNavigationItem };