import React, { useContext, useRef } from 'react'; import { ISideMenuItem } from '@/components/navigation/SideMenu'; import Link from 'next/link'; import { ScreenContext } from '@/contexts/screen'; import { ReactComponent as TriangleOutlinedSVG } from '@/assets/svgs/triangle-outlined.svg'; import { UI } from '@/constants'; import classNames from 'classnames'; import { collapseSideMenu } from '@/state/navigation'; import { useDispatch } from 'react-redux'; import { useHoverDirty } from 'react-use'; interface SideMenuRowProps { item: ISideMenuItem; isActive: boolean; } export function SideMenuRow({ item, isActive }: SideMenuRowProps) { const { isMobile, isTablet, isDesktop, isHuge, isEnormous } = useContext( ScreenContext, ); const isCollapsible = isTablet || isMobile; const dispatch = useDispatch(); const handleOnClick = () => { dispatch(collapseSideMenu()); }; const ref = useRef(null); const isHovering = useHoverDirty(ref); const isExcited = !isCollapsible && (isActive || isHovering); const inner = (
{item.label} {!isMobile && !isTablet && ( )}
); return item.isExternal ? ( {inner} ) : ( {inner} ); }