The admin-v2 application was incomplete in the repository. This commit restores all missing components: - Admin pages (76 pages): dashboard, ai, compliance, dsgvo, education, infrastructure, communication, development, onboarding, rbac - SDK pages (45 pages): tom, dsfa, vvt, loeschfristen, einwilligungen, vendor-compliance, tom-generator, dsr, and more - Developer portal (25 pages): API docs, SDK guides, frameworks - All components, lib files, hooks, and types - Updated package.json with all dependencies The issue was caused by incomplete initial repository state - the full admin-v2 codebase existed in backend/admin-v2 and docs-src/admin-v2 but was never fully synced to the main admin-v2 directory. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
58 lines
1.5 KiB
TypeScript
58 lines
1.5 KiB
TypeScript
'use client'
|
|
|
|
import { TestResultCard } from './TestResultCard'
|
|
import type { TestCategoryResult } from './types'
|
|
|
|
interface TestRunnerProps {
|
|
category: string
|
|
categoryResult?: TestCategoryResult
|
|
isLoading: boolean
|
|
onRunTests: () => void
|
|
runButtonLabel?: string
|
|
rerunButtonLabel?: string
|
|
}
|
|
|
|
export function TestRunner({
|
|
categoryResult,
|
|
isLoading,
|
|
onRunTests,
|
|
runButtonLabel = '▶️ Tests ausfuehren',
|
|
rerunButtonLabel = '🔄 Erneut ausfuehren',
|
|
}: TestRunnerProps) {
|
|
if (!categoryResult) {
|
|
return (
|
|
<div className="text-center py-6">
|
|
<button
|
|
onClick={onRunTests}
|
|
disabled={isLoading}
|
|
className={`px-6 py-3 rounded-lg font-medium transition-colors ${
|
|
isLoading
|
|
? 'bg-gray-400 cursor-not-allowed'
|
|
: 'bg-green-600 text-white hover:bg-green-700'
|
|
}`}
|
|
>
|
|
{isLoading ? '⏳ Tests laufen...' : runButtonLabel}
|
|
</button>
|
|
</div>
|
|
)
|
|
}
|
|
|
|
return (
|
|
<div>
|
|
<div className="flex items-center justify-between mb-4">
|
|
<h3 className="font-semibold text-gray-700">Testergebnisse</h3>
|
|
<button
|
|
onClick={onRunTests}
|
|
disabled={isLoading}
|
|
className="text-sm text-blue-600 hover:text-blue-800"
|
|
>
|
|
{rerunButtonLabel}
|
|
</button>
|
|
</div>
|
|
{categoryResult.tests.map((test, index) => (
|
|
<TestResultCard key={index} result={test} />
|
|
))}
|
|
</div>
|
|
)
|
|
}
|