1
0
Fork 0

refactor(nav): flatten sidebar sections into direct links

Replace nested section submenus in Intelligence, Infrastructure, and Personnel with flat per-page links carrying icons; drop the defensive item copying in AppSidebar.

Ultraworked with [Sisyphus](https://github.com/code-yeongju/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
Jason Fraley 2026-09-06 17:22:58 -04:00
parent b558569b8e
commit 3bc689d572
2 changed files with 58 additions and 70 deletions

View file

@ -138,20 +138,10 @@ export function AppSidebar({
<div className="flex min-h-0 flex-1 flex-col gap-2 overflow-y-auto group-data-[collapsible=icon]:overflow-hidden"> <div className="flex min-h-0 flex-1 flex-col gap-2 overflow-y-auto group-data-[collapsible=icon]:overflow-hidden">
<NavCore label="Platform" items={data.navMain} /> <NavCore label="Platform" items={data.navMain} />
{hasIntelligence && ( {hasIntelligence && (
<NavCore <NavCore label="Intelligence" items={data.navIntelligence} />
label="Intelligence"
items={data.navIntelligence.map((i) =>
typeof i.items === "object" ? { ...i, items: [...i.items] } : { ...i },
)}
/>
)} )}
{hasLogistics && ( {hasLogistics && (
<NavCore <NavCore label="Infrastructure" items={data.navLogistics} />
label="Infrastructure"
items={data.navLogistics.map((i) =>
typeof i.items === "object" ? { ...i, items: [...i.items] } : { ...i },
)}
/>
)} )}
<NavCore label="Helpdesk" items={data.navHelpdesk} /> <NavCore label="Helpdesk" items={data.navHelpdesk} />
<NavCore label="Commerce" items={data.navCommerce} /> <NavCore label="Commerce" items={data.navCommerce} />

View file

@ -1,16 +1,24 @@
import { import {
Award, Award,
Backpack, Backpack,
BarChart3,
BookOpen,
Boxes,
Building2,
Car,
Contact, Contact,
Crosshair, Crosshair,
Flag,
Kanban, Kanban,
LifeBuoy, LifeBuoy,
Package,
Search, Search,
Send, Send,
ShoppingBag, ShoppingBag,
Swords,
TrendingUp, TrendingUp,
Truck,
UserCog, UserCog,
Warehouse,
} from "lucide-react"; } from "lucide-react";
export const sidebarData = { export const sidebarData = {
@ -32,57 +40,52 @@ export const sidebarData = {
}, },
], ],
navIntelligence: [ navIntelligence: [
{
title: "Intelligence",
url: "#",
icon: Crosshair,
items: [
{ {
title: "Campaigns", title: "Campaigns",
url: "/intelligence/campaigns", url: "/intelligence/campaigns",
icon: Swords,
}, },
{ {
title: "Missions", title: "Missions",
url: "/intelligence/missions", url: "/intelligence/missions",
icon: Crosshair,
}, },
{ {
title: "Factions", title: "Factions",
url: "/intelligence/factions", url: "/intelligence/factions",
icon: Flag,
}, },
{ {
title: "Wiki", title: "Wiki",
url: "/wiki", url: "/wiki",
}, icon: BookOpen,
],
}, },
], ],
navLogistics: [ navLogistics: [
{
title: "Logistics",
url: "#",
icon: Warehouse,
items: [
{ {
title: "Structures", title: "Structures",
url: "/logistics", url: "/logistics",
icon: Building2,
}, },
{ {
title: "Resources", title: "Resources",
url: "/logistics/resources", url: "/logistics/resources",
icon: Boxes,
}, },
{ {
title: "Vehicles", title: "Vehicles",
url: "/logistics/vehicles", url: "/logistics/vehicles",
icon: Truck,
}, },
{ {
title: "Shipments", title: "Shipments",
url: "/logistics/shipments", url: "/logistics/shipments",
icon: Package,
}, },
{ {
title: "Deployed Vehicles", title: "Deployed Vehicles",
url: "/logistics/game-vehicles", url: "/logistics/game-vehicles",
}, icon: Car,
],
}, },
], ],
navCommerce: [ navCommerce: [
@ -98,20 +101,15 @@ export const sidebarData = {
}, },
], ],
navPersonnel: [ navPersonnel: [
{
title: "Personnel",
url: "#",
icon: Contact,
items: [
{ {
title: "Contacts", title: "Contacts",
url: "/personnel/contacts", url: "/personnel/contacts",
icon: Contact,
}, },
{ {
title: "Statistics", title: "Statistics",
url: "/personnel/statistics", url: "/personnel/statistics",
}, icon: BarChart3,
],
}, },
], ],
navPersonal: [ navPersonal: [