UNPKG

monday-ui-react-core

Version:

Official monday.com UI resources for application development in React.js

46 lines (39 loc) 979 B
import { useEffect } from "react"; import useIsMouseEnter from "../../../../hooks/useIsMouseEnter"; import usePrevious from "../../../../hooks/usePrevious"; export default function useMenuItemMouseEvents( ref, resetOpenSubMenuIndex, setSubMenuIsOpenByIndex, isActive, setActiveItemIndex, index, hasChildren ) { const isMouseEnter = useIsMouseEnter({ ref }); const prevIsMouseEnter = usePrevious(isMouseEnter); useEffect(() => { if (!isMouseEnter) return; if (isMouseEnter === prevIsMouseEnter) return; if (!isActive) { setActiveItemIndex(index); if (hasChildren) { setSubMenuIsOpenByIndex(index, true); } else { resetOpenSubMenuIndex(); } } if (isActive) { setSubMenuIsOpenByIndex(index, !!isMouseEnter); } }, [ resetOpenSubMenuIndex, prevIsMouseEnter, isMouseEnter, setSubMenuIsOpenByIndex, isActive, setActiveItemIndex, index, hasChildren ]); }