import { AdvancedSettingsWrapper } from '@/settings/components/AdvancedSettingsWrapper'; import { SettingsNavigationDrawerItem } from '@/settings/components/SettingsNavigationDrawerItem'; import { SettingsNavigationItem, SettingsNavigationSection, useSettingsNavigationItems, } from '@/settings/hooks/useSettingsNavigationItems'; import { NavigationDrawerItemGroup } from '@/ui/navigation/navigation-drawer/components/NavigationDrawerItemGroup'; import { NavigationDrawerSection } from '@/ui/navigation/navigation-drawer/components/NavigationDrawerSection'; import { NavigationDrawerSectionTitle } from '@/ui/navigation/navigation-drawer/components/NavigationDrawerSectionTitle'; import { getNavigationSubItemLeftAdornment } from '@/ui/navigation/navigation-drawer/utils/getNavigationSubItemLeftAdornment'; import { matchPath, resolvePath, useLocation } from 'react-router-dom'; import { getSettingsPath } from '~/utils/navigation/getSettingsPath'; export const SettingsNavigationDrawerItems = () => { const settingsNavigationItems: SettingsNavigationSection[] = useSettingsNavigationItems(); const currentPathName = useLocation().pathname; const getSelectedIndexForSubItems = (subItems: SettingsNavigationItem[]) => { return subItems.findIndex((subItem) => { const href = subItem.path ? getSettingsPath(subItem.path) : ''; const pathName = resolvePath(href).pathname; return matchPath( { path: pathName, end: subItem.matchSubPages === false, }, currentPathName, ); }); }; return ( <> {settingsNavigationItems.map((section) => { const allItemsHidden = section.items.every((item) => item.isHidden); if (allItemsHidden) { return null; } return ( {section.isAdvanced ? ( ) : ( )} {section.items.map((item, index) => { const subItems = item.subItems; if (Array.isArray(subItems) && subItems.length > 0) { const selectedSubItemIndex = getSelectedIndexForSubItems(subItems); return ( {subItems.map((subItem, subIndex) => ( ))} ); } return ( ); })} ); })} ); };