'use client' import React, { useState } from 'react' import { ProductWizard } from './_components/ProductWizard' import { GapDashboard } from './_components/GapDashboard' interface GapReport { profile_id: string profile_name: string regulations: Array<{ id: string name: string applicable: boolean confidence: number reasoning: string risk_level: string deadline?: string requirements?: string[] }> summary: { total_applicable_regulations: number total_gaps: number gaps_by_status: Record gaps_by_severity: Record gaps_by_regulation: Record overall_compliance_percent: number estimated_effort_weeks: number } gaps: Array<{ mc_id: string mc_name: string regulation: string status: string title: string severity: string priority: { score: number; rank: number } recommendation: string control_count: number }> } export default function GapAnalysisPage() { const [report, setReport] = useState(null) const [loading, setLoading] = useState(false) const [error, setError] = useState('') const handleAnalyze = async (profile: Record) => { setLoading(true) setError('') try { const res = await fetch('/api/sdk/v1/gap/analyze', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(profile), }) if (!res.ok) throw new Error(await res.text()) const data = await res.json() setReport(data) } catch (e) { setError(e instanceof Error ? e.message : 'Analyse fehlgeschlagen') } finally { setLoading(false) } } return (

Regulatory Gap-Analyse

Beschreiben Sie Ihr Produkt und erhalten Sie eine priorisierte Liste der Compliance-Anforderungen.

{error && (

{error}

)} {!report ? ( ) : ( setReport(null)} /> )}
) }