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:
parent
b558569b8e
commit
3bc689d572
2 changed files with 58 additions and 70 deletions
|
|
@ -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} />
|
||||||
|
|
|
||||||
|
|
@ -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: [
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue