import { NavGroup } from './NavGroup'; import { NavList } from './NavList'; import { useMenu } from '@/components/Layout/MenuProvider'; import { useLayoutMediaState } from '@/components/Layout/Provider'; import { useThemeConfig } from '@/components/Layout/ThemeProvider'; import { SxProps, Typography } from '@mui/material'; import _ from 'lodash'; import { useState } from 'react'; type INavigationProps = { sx?: SxProps; }; type IItem = { title: any; elements: any; icon: any }; function Navigation(props: INavigationProps) { const { horizontal } = useLayoutMediaState(); const { menu, isLoading } = useMenu(); const [selectedItems, setSelectedItems] = useState(''); const [selectedLevel, setSelectedLevel] = useState(0); const { horizontalMaxItems } = useThemeConfig(); const lastItem = horizontal ? horizontalMaxItems : undefined; let lastItemIndex = isLoading ? 0 : (menu ?? []).length - 1; let remItems: Array = []; let lastItemId: string; if (!isLoading && lastItem && lastItem < (menu ?? []).length) { lastItemId = (menu ?? [])[lastItem - 1].id; lastItemIndex = lastItem - 1; remItems = (menu ?? []).slice(lastItem - 1, (menu ?? []).length).map((item) => ({ title: item.title, elements: item.children, icon: item.icon })); } return ( {!isLoading && _.map((menu ?? []).slice(0, lastItemIndex + 1), (item) => { const { type } = item; switch (type) { case 'group': return ( ); default: return ( Fix - Navigation Group ); } })} ); } export { Navigation };