'use client' import React, { useState, useEffect } from 'react' import Link from 'next/link' interface IACEProject { id: string machine_name: string machine_type: string manufacturer: string status: string completeness_pct: number risk_summary: { critical: number high: number medium: number low: number } created_at: string updated_at: string } function StatusBadge({ status }: { status: string }) { const colors: Record = { draft: 'bg-gray-100 text-gray-700', in_progress: 'bg-blue-100 text-blue-700', review: 'bg-yellow-100 text-yellow-700', approved: 'bg-green-100 text-green-700', archived: 'bg-gray-100 text-gray-500', } const labels: Record = { draft: 'Entwurf', in_progress: 'In Bearbeitung', review: 'In Pruefung', approved: 'Freigegeben', archived: 'Archiviert', } return ( {labels[status] || status} ) } function CompletenessBar({ pct }: { pct: number }) { const color = pct >= 80 ? 'bg-green-500' : pct >= 50 ? 'bg-yellow-500' : pct >= 25 ? 'bg-orange-500' : 'bg-red-500' return (
{pct}%
) } function RiskDots({ summary }: { summary: IACEProject['risk_summary'] }) { return (
{summary.critical > 0 && ( {summary.critical} )} {summary.high > 0 && ( {summary.high} )} {summary.medium > 0 && ( {summary.medium} )} {summary.low > 0 && ( {summary.low} )} {summary.critical === 0 && summary.high === 0 && summary.medium === 0 && summary.low === 0 && ( Keine Risiken )}
) } function ProjectCard({ project }: { project: IACEProject }) { return (

{project.machine_name}

{project.machine_type}

Vollstaendigkeit
Risiken
Erstellt: {new Date(project.created_at).toLocaleDateString('de-DE')} Aktualisiert: {new Date(project.updated_at).toLocaleDateString('de-DE')}
) } export default function IACEDashboardPage() { const [projects, setProjects] = useState([]) const [loading, setLoading] = useState(true) const [creating, setCreating] = useState(false) const [showCreateForm, setShowCreateForm] = useState(false) const [formData, setFormData] = useState({ machine_name: '', machine_type: '', manufacturer: '', }) useEffect(() => { fetchProjects() }, []) async function fetchProjects() { try { const res = await fetch('/api/sdk/v1/iace/projects') if (res.ok) { const json = await res.json() setProjects(json.projects || json || []) } } catch (err) { console.error('Failed to fetch IACE projects:', err) } finally { setLoading(false) } } async function handleCreateProject() { if (!formData.machine_name) return setCreating(true) try { const res = await fetch('/api/sdk/v1/iace/projects', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(formData), }) if (res.ok) { setShowCreateForm(false) setFormData({ machine_name: '', machine_type: '', manufacturer: '' }) await fetchProjects() } } catch (err) { console.error('Failed to create project:', err) } finally { setCreating(false) } } async function handleInitFromProfile(projectId: string) { try { const res = await fetch(`/api/sdk/v1/iace/projects/${projectId}/init-from-profile`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, }) if (res.ok) { await fetchProjects() } } catch (err) { console.error('Failed to init from profile:', err) } } if (loading) { return (
) } return (
{/* Header */}

CE-Compliance (IACE)

Industrial AI Compliance Engine -- Durchgaengige CE-Konformitaet fuer Maschinen und Anlagen mit KI-Komponenten. Verwalten Sie Risikobeurteilungen, Hazard Logs und technische Dokumentation gemaess Maschinenverordnung, AI Act, CRA und NIS2.

{/* Create Form */} {showCreateForm && (

Neues CE-Projekt anlegen

setFormData({ ...formData, machine_name: e.target.value })} placeholder="z.B. Schweissroboter SR-500" className="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-purple-500 focus:border-transparent dark:bg-gray-700 dark:border-gray-600 dark:text-white" />
setFormData({ ...formData, machine_type: e.target.value })} placeholder="z.B. Industrieroboter" className="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-purple-500 focus:border-transparent dark:bg-gray-700 dark:border-gray-600 dark:text-white" />
setFormData({ ...formData, manufacturer: e.target.value })} placeholder="z.B. Acme Robotics GmbH" className="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-purple-500 focus:border-transparent dark:bg-gray-700 dark:border-gray-600 dark:text-white" />
)} {/* Project List */} {projects.length > 0 && (

Projekte ({projects.length})

{projects.map((project) => ( ))}
)} {/* Empty State */} {projects.length === 0 && !showCreateForm && (

Noch keine CE-Projekte vorhanden

Die IACE (Industrial AI Compliance Engine) begleitet Sie Schritt fuer Schritt durch den gesamten CE-Konformitaetsprozess. Von der Komponentenerfassung ueber die Risikobeurteilung bis hin zur fertigen CE-Akte -- alles in einem Werkzeug. Unterstuetzt werden Maschinenverordnung (2023/1230), AI Act, Cyber Resilience Act und NIS2.

)}
) }