import { ComponentProps } from 'react'; import GroupExpandIconButton from './GroupExpandIconButton'; import ItemContent from './ItemContent'; import Box from '../Box'; import { useDeviceType } from '../contexts/DeviceTypeProvider'; import { useSideNavigation } from '../contexts/SideNavigationProvider'; import Flex from '../Flex'; import TapArea from '../TapArea'; type Display = 'expandable' | 'static'; type Props = Omit, 'children' | 'hasBorder' | 'isGroup'> & { expanded: boolean; itemId: string; selectedItemId: string; display?: Display; hasActiveChild?: boolean; isLink?: boolean; expandIconButtonProps?: Pick< ComponentProps, 'accessibilityControls' | 'accessibilityExpanded' | 'onTap' >; }; export default function SideNavigationGroupContent({ expanded, selectedItemId, itemId, icon, label, badge, notificationAccessibilityLabel, counter, display, primaryAction, setCompression, hovered, focused, hasActiveChild, active, isLink, expandIconButtonProps, }: Props) { const deviceType = useDeviceType(); const isMobile = deviceType === 'mobile'; const { collapsed: sideNavigationCollapsed, overlayPreview } = useSideNavigation(); const collapsed = sideNavigationCollapsed && !overlayPreview; const hasBorder = sideNavigationCollapsed || !expanded ? hasActiveChild : expanded && selectedItemId === itemId; return ( {(!collapsed && ['expandable', 'expandableExpanded'].includes(display as string)) || isMobile ? ( ) : null} ); }