Files
property-match/src/components/review/ReviewStatusBadge.tsx
T
Benjamin Sutter 5d3323617c feat: F018 human review queue — 2-panel governance workspace
Replaces the old ad-hoc ReviewQueue page with a full governance-compliant
workflow: filterable task list, detail panel with confidence/risk context,
role-aware approve/reject/escalate/more-data actions, and persistent notes.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-17 13:03:34 +02:00

34 lines
1.1 KiB
TypeScript

import { Chip } from '@mui/material'
import type { ReviewTaskStatus } from '../../domain/review'
interface ReviewStatusBadgeProps {
status: ReviewTaskStatus
size?: 'small' | 'medium'
}
const CONFIG: Record<ReviewTaskStatus, { label: string; color: string }> = {
PENDING: { label: 'Ausstehend', color: '#d97706' },
IN_REVIEW: { label: 'In Prüfung', color: '#2563eb' },
APPROVED: { label: 'Genehmigt', color: '#1a7a4a' },
REJECTED: { label: 'Abgelehnt', color: '#c0392b' },
NEEDS_MORE_DATA: { label: 'Mehr Daten nötig', color: '#7c3aed' },
ESCALATED: { label: 'Eskaliert', color: '#ea580c' },
}
export function ReviewStatusBadge({ status, size = 'small' }: ReviewStatusBadgeProps) {
const { label, color } = CONFIG[status] ?? CONFIG.PENDING
return (
<Chip
size={size}
label={label}
sx={{
bgcolor: `${color}18`,
color,
fontWeight: 600,
fontSize: size === 'small' ? '0.7rem' : '0.8125rem',
border: `1px solid ${color}40`,
}}
/>
)
}