Extract QA and map workbench components
GeoIntel CI / docs-smoke (push) Has been cancelled
GeoIntel CI / contract-smoke (push) Has been cancelled

This commit is contained in:
Codex
2026-06-17 04:14:35 +02:00
parent 016926e256
commit acf95905ca
11 changed files with 312 additions and 125 deletions
@@ -0,0 +1,45 @@
import type { QualityCheckRead } from '../../types'
interface QualityResultsPanelProps {
selectedProjectId: string | null
qualityChecks: QualityCheckRead[]
qualityChecksError: string | null
onRefresh: () => void
}
export function QualityResultsPanel({
selectedProjectId,
qualityChecks,
qualityChecksError,
onRefresh,
}: QualityResultsPanelProps): JSX.Element {
return (
<section>
<h2>QA/QC Results</h2>
<button type="button" onClick={onRefresh} disabled={!selectedProjectId}>
Refresh QA/QC results
</button>
{qualityChecksError ? <p className="error">{qualityChecksError}</p> : null}
{qualityChecks.length === 0 ? <p>No persisted QA/QC results yet</p> : null}
<ul>
{qualityChecks.map((check) => (
<li key={check.id}>
<strong>{check.check_type}</strong>
<div>status: {check.status}</div>
<div>score: {check.score ?? 'n/a'}</div>
<div>candidate: {check.candidate_dataset_id ?? 'n/a'}</div>
<div>reference: {check.reference_dataset_id}</div>
<div>quality check: {check.id}</div>
<ul>
{check.metrics.map((metric) => (
<li key={metric.id}>
{metric.metric_key}: {metric.metric_value ?? 'n/a'}
</li>
))}
</ul>
</li>
))}
</ul>
</section>
)
}