'use client' import React, { useState } from 'react' import { useSDK } from '@/lib/sdk' import { StepHeader, STEP_EXPLANATIONS } from '@/components/sdk/StepHeader' // ============================================================================= // TYPES // ============================================================================= interface CookieCategory { id: string name: string description: string required: boolean enabled: boolean cookies: Cookie[] } interface Cookie { name: string provider: string purpose: string expiry: string type: 'first-party' | 'third-party' } interface BannerConfig { position: 'bottom' | 'top' | 'center' style: 'bar' | 'popup' | 'modal' primaryColor: string showDeclineAll: boolean showSettings: boolean blockScripts: boolean } // ============================================================================= // MOCK DATA // ============================================================================= const mockCategories: CookieCategory[] = [ { id: 'necessary', name: 'Notwendig', description: 'Diese Cookies sind fuer die Grundfunktionen der Website erforderlich.', required: true, enabled: true, cookies: [ { name: 'session_id', provider: 'Eigene', purpose: 'Session-Verwaltung', expiry: 'Session', type: 'first-party' }, { name: 'csrf_token', provider: 'Eigene', purpose: 'Sicherheit', expiry: 'Session', type: 'first-party' }, ], }, { id: 'analytics', name: 'Analyse', description: 'Diese Cookies helfen uns, die Nutzung der Website zu verstehen.', required: false, enabled: true, cookies: [ { name: '_ga', provider: 'Google Analytics', purpose: 'Nutzeranalyse', expiry: '2 Jahre', type: 'third-party' }, { name: '_gid', provider: 'Google Analytics', purpose: 'Nutzeranalyse', expiry: '24 Stunden', type: 'third-party' }, ], }, { id: 'marketing', name: 'Marketing', description: 'Diese Cookies werden fuer personalisierte Werbung verwendet.', required: false, enabled: false, cookies: [ { name: '_fbp', provider: 'Meta (Facebook)', purpose: 'Werbung', expiry: '3 Monate', type: 'third-party' }, { name: 'IDE', provider: 'Google Ads', purpose: 'Werbung', expiry: '1 Jahr', type: 'third-party' }, ], }, { id: 'preferences', name: 'Praeferenzen', description: 'Diese Cookies speichern Ihre Einstellungen und Praeferenzen.', required: false, enabled: true, cookies: [ { name: 'language', provider: 'Eigene', purpose: 'Spracheinstellung', expiry: '1 Jahr', type: 'first-party' }, { name: 'theme', provider: 'Eigene', purpose: 'Design-Einstellung', expiry: '1 Jahr', type: 'first-party' }, ], }, ] const defaultConfig: BannerConfig = { position: 'bottom', style: 'bar', primaryColor: '#6366f1', showDeclineAll: true, showSettings: true, blockScripts: true, } // ============================================================================= // COMPONENTS // ============================================================================= function BannerPreview({ config, categories }: { config: BannerConfig; categories: CookieCategory[] }) { return (
Wir nutzen Cookies, um Ihnen die bestmoegliche Nutzung unserer Website zu ermoeglichen.
{category.description}
| Cookie | Anbieter | Zweck | Ablauf |
|---|---|---|---|
| {cookie.name} | {cookie.provider} | {cookie.purpose} | {cookie.expiry} |