/* Results / status view for a single evaluation */ (() => { const { useEffect: useEffectR, useState: useStateR } = React; function Results({ publicKey, onReset }) { const [ev, setEv] = useStateR(null); const [err, setErr] = useStateR(''); useEffectR(() => { let stopped = false; async function poll() { try { const data = await api.getEvaluation(publicKey); if (stopped) return; setEv(data); if (data.status === 'pending' || data.status === 'researching' || data.status === 'scoring') { setTimeout(poll, 3000); } } catch (e) { if (!stopped) setErr(e.message); } } poll(); return () => { stopped = true; }; }, [publicKey]); if (err) return (
โš  {err}
); if (!ev) return
Loadingโ€ฆ
; const statusEmoji = { pending: 'โณ', researching: '๐Ÿ”', scoring: '๐Ÿงฎ', complete: 'โœ…', failed: 'โš ๏ธ', }[ev.status] || 'ยท'; const verdictClass = ev.score_tier === 'sign' ? 'verdict-sign' : ev.score_tier === 'review' ? 'verdict-review' : ev.score_tier === 'decline' ? 'verdict-decline' : ev.score_tier === 'reject' ? 'verdict-reject' : 'bg-gray-100 text-ink-3'; return (
Case
{ev.public_key}
{ev.defendant_name || 'โ€”'} vs. {ev.client_name || 'โ€”'}
Status
{statusEmoji} {ev.status}
{ev.status === 'researching' && } {ev.status === 'scoring' && } {ev.status === 'failed' && (
Pipeline failed: {ev.error || 'unknown error'}
)} {ev.status === 'complete' && ( <>
{ev.score?.toFixed(1)}
/ 10
{ev.score_tier?.toUpperCase()}
{ev.score_factors && (
{ev.score_factors.map((f, i) => (
{f.label} = 0 ? 'text-green-700 font-mono' : 'text-red-700 font-mono'}> {f.delta >= 0 ? '+' : ''}{f.delta}
))}
)}
Generated documents
{ev.case_summary && (
Full case summary
{ev.case_summary}
)} )}
); } function Card({ children }) { return
{children}
; } function ProgressCard({ label }) { return (
{label}โ€ฆ
); } function DocButton({ href, label, icon, sub }) { return (
{icon}
{label}
{sub} โ†“
); } window.Results = Results; })();