fix(workbench-ui): memoize practice evidence panel model

This commit is contained in:
Shay 2026-06-23 16:01:42 -07:00
parent 0074897c7a
commit 57b82e0fb8

View file

@ -61,6 +61,10 @@ export function PracticeEvidencePanel({
() => (evidence ? JSON.stringify(evidence, null, 2) : ""), () => (evidence ? JSON.stringify(evidence, null, 2) : ""),
[evidence], [evidence],
); );
const model = useMemo(
() => (evidence ? practiceEvidencePanelModel(evidence) : null),
[evidence],
);
if (isLoading) { if (isLoading) {
return <LoadingState label="Loading sealed practice evidence..." />; return <LoadingState label="Loading sealed practice evidence..." />;
@ -75,7 +79,7 @@ export function PracticeEvidencePanel({
/> />
); );
} }
if (!evidence) { if (!evidence || model === null) {
return ( return (
<EmptyState <EmptyState
statement="No sealed practice evidence recorded for this turn." statement="No sealed practice evidence recorded for this turn."
@ -84,7 +88,6 @@ export function PracticeEvidencePanel({
); );
} }
const model = practiceEvidencePanelModel(evidence);
return ( return (
<section className="grid gap-3" data-testid="practice-evidence-panel"> <section className="grid gap-3" data-testid="practice-evidence-panel">
{model.emptyMessage ? ( {model.emptyMessage ? (