11ca113318
Build + Deploy / build-admin-compliance (push) Successful in 1m44s
Build + Deploy / build-backend-compliance (push) Successful in 3m7s
Build + Deploy / build-ai-sdk (push) Successful in 47s
Build + Deploy / build-developer-portal (push) Successful in 1m8s
Build + Deploy / build-tts (push) Successful in 1m18s
Build + Deploy / build-document-crawler (push) Successful in 34s
Build + Deploy / build-dsms-gateway (push) Successful in 20s
Build + Deploy / build-dsms-node (push) Successful in 10s
CI / loc-budget (push) Failing after 15s
CI / secret-scan (push) Has been skipped
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / branch-name (push) Has been skipped
CI / guardrail-integrity (push) Has been skipped
CI / dep-audit (push) Has been skipped
CI / sbom-scan (push) Has been skipped
CI / test-go (push) Successful in 48s
CI / test-python-backend (push) Successful in 39s
CI / nodejs-build (push) Successful in 2m42s
CI / test-python-dsms-gateway (push) Successful in 21s
CI / validate-canonical-controls (push) Successful in 14s
CI / test-python-document-crawler (push) Successful in 25s
Build + Deploy / trigger-orca (push) Successful in 2m49s
- Deleted 6 unused components from /sdk/einwilligungen/cookie-banner/_components/ - Replaced page.tsx with Next.js redirect() to /sdk/cookie-banner - Updated EinwilligungenNavTabs link to /sdk/cookie-banner - Updated catalog page link to /sdk/cookie-banner - Single source of truth: /sdk/cookie-banner (Step in "Rechtliche Texte") Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
85 lines
2.1 KiB
TypeScript
85 lines
2.1 KiB
TypeScript
'use client'
|
|
|
|
import Link from 'next/link'
|
|
import { usePathname } from 'next/navigation'
|
|
import {
|
|
Database,
|
|
FileText,
|
|
Cookie,
|
|
Clock,
|
|
LayoutGrid,
|
|
} from 'lucide-react'
|
|
|
|
const EINWILLIGUNGEN_TABS = [
|
|
{
|
|
id: 'overview',
|
|
label: 'Übersicht',
|
|
href: '/sdk/einwilligungen',
|
|
icon: LayoutGrid,
|
|
description: 'Consent-Tracking Dashboard',
|
|
},
|
|
{
|
|
id: 'catalog',
|
|
label: 'Datenpunktkatalog',
|
|
href: '/sdk/einwilligungen/catalog',
|
|
icon: Database,
|
|
description: '18 Kategorien, 128 Datenpunkte',
|
|
},
|
|
{
|
|
id: 'privacy-policy',
|
|
label: 'DSI Generator',
|
|
href: '/sdk/einwilligungen/privacy-policy',
|
|
icon: FileText,
|
|
description: 'Datenschutzinformation erstellen',
|
|
},
|
|
{
|
|
id: 'cookie-banner',
|
|
label: 'Cookie-Banner',
|
|
href: '/sdk/cookie-banner',
|
|
icon: Cookie,
|
|
description: 'Cookie-Consent konfigurieren',
|
|
},
|
|
{
|
|
id: 'retention',
|
|
label: 'Löschmatrix',
|
|
href: '/sdk/einwilligungen/retention',
|
|
icon: Clock,
|
|
description: 'Aufbewahrungsfristen verwalten',
|
|
},
|
|
]
|
|
|
|
export function EinwilligungenNavTabs() {
|
|
const pathname = usePathname()
|
|
|
|
return (
|
|
<div className="bg-white rounded-xl border border-gray-200 p-2 mb-6">
|
|
<div className="flex flex-wrap gap-2">
|
|
{EINWILLIGUNGEN_TABS.map((tab) => {
|
|
const Icon = tab.icon
|
|
const isActive = pathname === tab.href
|
|
|
|
return (
|
|
<Link
|
|
key={tab.id}
|
|
href={tab.href}
|
|
className={`flex items-center gap-3 px-4 py-3 rounded-lg transition-all ${
|
|
isActive
|
|
? 'bg-purple-100 text-purple-900 shadow-sm'
|
|
: 'text-gray-600 hover:bg-gray-100 hover:text-gray-900'
|
|
}`}
|
|
>
|
|
<Icon className={`w-5 h-5 ${isActive ? 'text-purple-600' : 'text-gray-400'}`} />
|
|
<div>
|
|
<div className={`font-medium text-sm ${isActive ? 'text-purple-900' : ''}`}>
|
|
{tab.label}
|
|
</div>
|
|
<div className="text-xs text-gray-500">{tab.description}</div>
|
|
</div>
|
|
</Link>
|
|
)
|
|
})}
|
|
</div>
|
|
</div>
|
|
)
|
|
}
|