feat: IACE Navigation-Struktur — Grenzen-Tab + Zusatzmodule
- 'Grenzen & Verwendung' als neuen Tab eingefuegt (Schritt 3 CE-Prozess) - Klassifikation + Monitoring als 'Zusatzmodule' separiert - chat-Icon fuer Interview/Grenzen Tab Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -7,13 +7,17 @@ import IACEFlowFAB from './[projectId]/_components/IACEFlowFAB'
|
||||
|
||||
const IACE_NAV_ITEMS = [
|
||||
{ id: 'overview', label: 'Uebersicht', href: '', icon: 'grid' },
|
||||
{ id: 'interview', label: 'Grenzen & Verwendung', href: '/interview', icon: 'chat' },
|
||||
{ id: 'components', label: 'Komponenten', href: '/components', icon: 'cube' },
|
||||
{ id: 'classification', label: 'Klassifikation', href: '/classification', icon: 'tag' },
|
||||
{ id: 'hazards', label: 'Hazard Log', href: '/hazards', icon: 'warning' },
|
||||
{ id: 'mitigations', label: 'Massnahmen', href: '/mitigations', icon: 'shield' },
|
||||
{ id: 'verification', label: 'Verifikation', href: '/verification', icon: 'check' },
|
||||
{ id: 'evidence', label: 'Nachweise', href: '/evidence', icon: 'document' },
|
||||
{ id: 'tech-file', label: 'CE-Akte', href: '/tech-file', icon: 'folder' },
|
||||
]
|
||||
|
||||
const IACE_EXTRA_ITEMS = [
|
||||
{ id: 'classification', label: 'Klassifikation', href: '/classification', icon: 'tag' },
|
||||
{ id: 'monitoring', label: 'Monitoring', href: '/monitoring', icon: 'activity' },
|
||||
]
|
||||
|
||||
@@ -74,6 +78,12 @@ function NavIcon({ icon, className }: { icon: string; className?: string }) {
|
||||
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M13 10V3L4 14h7v7l9-11h-7z" />
|
||||
</svg>
|
||||
)
|
||||
case 'chat':
|
||||
return (
|
||||
<svg className={cls} fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
||||
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z" />
|
||||
</svg>
|
||||
)
|
||||
default:
|
||||
return null
|
||||
}
|
||||
@@ -139,6 +149,26 @@ export default function IACELayout({ children }: { children: React.ReactNode })
|
||||
</Link>
|
||||
))}
|
||||
</nav>
|
||||
{/* Extra modules (not part of standard CE flow) */}
|
||||
<div className="px-4 pt-3 mt-1 border-t border-gray-200 dark:border-gray-700">
|
||||
<p className="text-xs text-gray-400 uppercase tracking-wider mb-1">Zusatzmodule</p>
|
||||
</div>
|
||||
<nav className="px-2 pb-2 space-y-0.5">
|
||||
{IACE_EXTRA_ITEMS.map((item) => (
|
||||
<Link
|
||||
key={item.id}
|
||||
href={`${basePath}${item.href}`}
|
||||
className={`flex items-center gap-2.5 px-3 py-2 rounded-lg text-xs font-medium transition-colors ${
|
||||
isActive(item.href)
|
||||
? 'bg-gray-100 text-gray-700 dark:bg-gray-700 dark:text-gray-300'
|
||||
: 'text-gray-400 hover:bg-gray-50 dark:text-gray-500 dark:hover:bg-gray-700'
|
||||
}`}
|
||||
>
|
||||
<NavIcon icon={item.icon} className="w-3.5 h-3.5 flex-shrink-0" />
|
||||
<span className="truncate">{item.label}</span>
|
||||
</Link>
|
||||
))}
|
||||
</nav>
|
||||
</aside>
|
||||
)}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user