From a9107add7b9c46952faded7ae11572e5169afdc2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hartmut=20N=C3=B6renberg?= Date: Thu, 26 Mar 2026 08:44:25 +0100 Subject: [PATCH] feat: unique icons for all admin navigation items Replaced generic AdminIcon (gear) with distinct icons: - Blueprints: document with lines - Clients: building/office - Countries: globe - Org Units: layout/grid - Util. Categories: tag - Mgmt Levels: horizontal lines (hierarchy) - Data Import: upload arrow - Calc. Rules: calculator - Users: people group - System Roles: shield with checkmark - Settings: detailed gear (distinct from AdminIcon) - Webhooks: chain link Existing unique icons kept: Broadcasts (megaphone), Activity Log (clock) Co-Authored-By: claude-flow --- apps/web/src/components/layout/AppShell.tsx | 60 ++++++++++++++++----- 1 file changed, 48 insertions(+), 12 deletions(-) diff --git a/apps/web/src/components/layout/AppShell.tsx b/apps/web/src/components/layout/AppShell.tsx index 4d98bdc..3605515 100644 --- a/apps/web/src/components/layout/AppShell.tsx +++ b/apps/web/src/components/layout/AppShell.tsx @@ -82,6 +82,42 @@ function ActivityLogIcon() { function AdminIcon() { return ; } +function BlueprintIcon() { + return ; +} +function ClientsIcon() { + return ; +} +function CountryIcon() { + return ; +} +function OrgUnitIcon() { + return ; +} +function CategoryIcon() { + return ; +} +function LevelsIcon() { + return ; +} +function ImportIcon() { + return ; +} +function CalcRulesIcon() { + return ; +} +function UsersIcon() { + return ; +} +function SystemRolesIcon() { + return ; +} +function SettingsIcon() { + return ; +} +function WebhooksIcon() { + return ; +} function CollapseIcon({ collapsed }: { collapsed: boolean }) { return ( @@ -172,25 +208,25 @@ function isSubGroup(entry: AdminEntry): entry is AdminSubGroup { } const adminNavEntries: AdminEntry[] = [ - { href: "/admin/blueprints", label: "Blueprints", icon: }, - { href: "/admin/clients", label: "Clients", icon: }, + { href: "/admin/blueprints", label: "Blueprints", icon: }, + { href: "/admin/clients", label: "Clients", icon: }, { label: "ACN-Orga", collapsed: true, items: [ - { href: "/admin/countries", label: "Countries", icon: }, - { href: "/admin/org-units", label: "Org Units", icon: }, - { href: "/admin/utilization-categories", label: "Util. Categories", icon: }, - { href: "/admin/management-levels", label: "Mgmt Levels", icon: }, - { href: "/admin/imports", label: "Data Import", icon: }, + { href: "/admin/countries", label: "Countries", icon: }, + { href: "/admin/org-units", label: "Org Units", icon: }, + { href: "/admin/utilization-categories", label: "Util. Categories", icon: }, + { href: "/admin/management-levels", label: "Mgmt Levels", icon: }, + { href: "/admin/imports", label: "Data Import", icon: }, ], }, - { href: "/admin/calculation-rules", label: "Calc. Rules", icon: }, - { href: "/admin/users", label: "Users", icon: }, - { href: "/admin/system-roles", label: "System Roles", icon: }, - { href: "/admin/settings", label: "Settings", icon: }, + { href: "/admin/calculation-rules", label: "Calc. Rules", icon: }, + { href: "/admin/users", label: "Users", icon: }, + { href: "/admin/system-roles", label: "System Roles", icon: }, + { href: "/admin/settings", label: "Settings", icon: }, { href: "/admin/notifications", label: "Broadcasts", icon: }, - { href: "/admin/webhooks", label: "Webhooks", icon: }, + { href: "/admin/webhooks", label: "Webhooks", icon: }, { href: "/admin/activity-log", label: "Activity Log", icon: }, ];