import { Fragment, useCallback, useEffect, useId, useMemo, useState } from 'react'; import classnames from 'classnames'; import getChildrenToArray from './getChildrenToArray'; import SideNavigationGroupContent from './GroupContent'; import Box from '../Box'; import { NestingProvider, useNesting } from '../contexts/NestingProvider'; import { useSideNavigation } from '../contexts/SideNavigationProvider'; import Flex from '../Flex'; import Heading from '../Heading'; import IconButton from '../IconButton'; import InternalDismissButton from '../sharedSubcomponents/InternalDismissButton'; import styles from '../SideNavigation.css'; import { Props } from '../SideNavigationGroup'; import TapArea from '../TapArea'; type SideNavigationGroupMobileProps = Props & { hasActiveChild: boolean; }; export default function SideNavigationGroupMobile({ children, badge, counter, display = 'expandable', hasActiveChild = false, icon, label, primaryAction, notificationAccessibilityLabel, }: SideNavigationGroupMobileProps) { // Manages PrimaryAction const [compression, setCompression] = useState<'compress' | 'none'>('compress'); const [hovered, setHovered] = useState(false); const [focused, setFocused] = useState(false); // Manages children const itemId = useId(); const { nestedLevel } = useNesting(); const { dismissButton, selectedItemId, setSelectedItemId, setSelectedMobileChildren, hideActiveChildren, setHideActiveChildren, } = useSideNavigation(); const isTopLevel = nestedLevel === 0; const childrenArray = getChildrenToArray({ children, filterLevel: 'nested', }); const childrenList = useMemo( () => (