'use client'
import { useState } from 'react'
import Link from 'next/link'
export interface PagePurposeProps {
title: string
purpose: string
audience: string[]
gdprArticles?: string[]
architecture?: {
services: string[]
databases: string[]
diagram?: string
}
relatedPages?: Array<{
name: string
href: string
description: string
}>
collapsible?: boolean
defaultCollapsed?: boolean
}
export function PagePurpose({
title,
purpose,
audience,
gdprArticles,
architecture,
relatedPages,
collapsible = true,
defaultCollapsed = false,
}: PagePurposeProps) {
const [collapsed, setCollapsed] = useState(defaultCollapsed)
const [showArchitecture, setShowArchitecture] = useState(false)
return (
{/* Header */}
setCollapsed(!collapsed) : undefined}
>
🎯
Warum gibt es diese Seite?
{collapsible && (
)}
{/* Content */}
{!collapsed && (
{/* Purpose */}
{purpose}
{/* Metadata */}
{/* Audience */}
👥
Zielgruppe:
{audience.join(', ')}
{/* GDPR Articles */}
{gdprArticles && gdprArticles.length > 0 && (
📋
DSGVO-Bezug:
{gdprArticles.join(', ')}
)}
{/* Architecture (expandable) */}
{architecture && (
{showArchitecture && (
Services:
{architecture.services.map((service) => (
-
{service}
))}
Datenbanken:
{architecture.databases.map((db) => (
-
{db}
))}
)}
)}
{/* Related Pages */}
{relatedPages && relatedPages.length > 0 && (
🔗
Verwandte Seiten
{relatedPages.map((page) => (
{page.name}
))}
)}
)}
)
}