diff --git a/surfsense_web/components/sidebar/nav-main.tsx b/surfsense_web/components/sidebar/nav-main.tsx index af4c20644..caea766b3 100644 --- a/surfsense_web/components/sidebar/nav-main.tsx +++ b/surfsense_web/components/sidebar/nav-main.tsx @@ -62,23 +62,27 @@ export function NavMain({ items }: { items: NavItem[] }) { {memoizedItems.map((item, index) => { const translatedTitle = translateTitle(item.title); + const hasSub = !!item.items?.length; return ( - - - - {translatedTitle} - - - - {item.items?.length ? ( + {hasSub ? ( + // When the item has children, make the whole row a collapsible trigger <> + + + + + + Toggle submenu + {item.items?.map((subItem, subIndex) => { @@ -105,7 +110,20 @@ export function NavMain({ items }: { items: NavItem[] }) { - ) : null} + ) : ( + // Leaf item: treat as a normal link + + + + {translatedTitle} + + + )} );