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 = {
@ -33,56 +41,51 @@ export const sidebarData = {
], ],
navIntelligence: [ navIntelligence: [
{ {
title: "Intelligence", title: "Campaigns",
url: "#", url: "/intelligence/campaigns",
icon: Swords,
},
{
title: "Missions",
url: "/intelligence/missions",
icon: Crosshair, icon: Crosshair,
items: [ },
{ {
title: "Campaigns", title: "Factions",
url: "/intelligence/campaigns", url: "/intelligence/factions",
}, icon: Flag,
{ },
title: "Missions", {
url: "/intelligence/missions", title: "Wiki",
}, url: "/wiki",
{ icon: BookOpen,
title: "Factions",
url: "/intelligence/factions",
},
{
title: "Wiki",
url: "/wiki",
},
],
}, },
], ],
navLogistics: [ navLogistics: [
{ {
title: "Logistics", title: "Structures",
url: "#", url: "/logistics",
icon: Warehouse, icon: Building2,
items: [ },
{ {
title: "Structures", title: "Resources",
url: "/logistics", url: "/logistics/resources",
}, icon: Boxes,
{ },
title: "Resources", {
url: "/logistics/resources", title: "Vehicles",
}, url: "/logistics/vehicles",
{ icon: Truck,
title: "Vehicles", },
url: "/logistics/vehicles", {
}, title: "Shipments",
{ url: "/logistics/shipments",
title: "Shipments", icon: Package,
url: "/logistics/shipments", },
}, {
{ title: "Deployed Vehicles",
title: "Deployed Vehicles", url: "/logistics/game-vehicles",
url: "/logistics/game-vehicles", icon: Car,
},
],
}, },
], ],
navCommerce: [ navCommerce: [
@ -99,19 +102,14 @@ export const sidebarData = {
], ],
navPersonnel: [ navPersonnel: [
{ {
title: "Personnel", title: "Contacts",
url: "#", url: "/personnel/contacts",
icon: Contact, icon: Contact,
items: [ },
{ {
title: "Contacts", title: "Statistics",
url: "/personnel/contacts", url: "/personnel/statistics",
}, icon: BarChart3,
{
title: "Statistics",
url: "/personnel/statistics",
},
],
}, },
], ],
navPersonal: [ navPersonal: [