From cfd9dc6afebcc64f82d2cfe4c20e146f83405c0c Mon Sep 17 00:00:00 2001 From: Matt Date: Mon, 27 Apr 2026 13:17:18 +0200 Subject: [PATCH] fix: scope observer reports preview dialog to selected round Threads the active roundId through ProjectPreviewDialog and its two callers (filtering tabs, expandable juror table). When a round is in scope, the preview's stats card now matches the per-juror list and the page-level round selector. The roundId prop is optional so the component still works in any future caller that lacks round context. Co-Authored-By: Claude Opus 4.7 (1M context) --- src/components/observer/reports/evaluation-report-tabs.tsx | 2 +- src/components/observer/reports/expandable-juror-table.tsx | 4 +++- src/components/observer/reports/filtering-report-tabs.tsx | 1 + src/components/observer/reports/project-preview-dialog.tsx | 5 +++-- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/components/observer/reports/evaluation-report-tabs.tsx b/src/components/observer/reports/evaluation-report-tabs.tsx index d1914e6..3593eb1 100644 --- a/src/components/observer/reports/evaluation-report-tabs.tsx +++ b/src/components/observer/reports/evaluation-report-tabs.tsx @@ -546,7 +546,7 @@ function JurorsSubTab({ roundId, selectedValue }: { roundId: string; selectedVal {isLoading ? ( ) : jurors.length > 0 ? ( - + ) : hasSelection ? ( diff --git a/src/components/observer/reports/expandable-juror-table.tsx b/src/components/observer/reports/expandable-juror-table.tsx index 2c99fab..1127864 100644 --- a/src/components/observer/reports/expandable-juror-table.tsx +++ b/src/components/observer/reports/expandable-juror-table.tsx @@ -30,6 +30,7 @@ interface JurorRow { interface ExpandableJurorTableProps { jurors: JurorRow[] + roundId?: string } function evalStatusBadge(status: string) { @@ -56,7 +57,7 @@ function ScorePill({ score }: { score: number }) { ) } -export function ExpandableJurorTable({ jurors }: ExpandableJurorTableProps) { +export function ExpandableJurorTable({ jurors, roundId }: ExpandableJurorTableProps) { const [expanded, setExpanded] = useState(null) const [previewProjectId, setPreviewProjectId] = useState(null) @@ -260,6 +261,7 @@ export function ExpandableJurorTable({ jurors }: ExpandableJurorTableProps) { {/* Project Preview Dialog */} { if (!open) setPreviewProjectId(null) }} /> diff --git a/src/components/observer/reports/filtering-report-tabs.tsx b/src/components/observer/reports/filtering-report-tabs.tsx index 3374d79..46891ec 100644 --- a/src/components/observer/reports/filtering-report-tabs.tsx +++ b/src/components/observer/reports/filtering-report-tabs.tsx @@ -334,6 +334,7 @@ export function FilteringReportTabs({ roundId }: FilteringReportTabsProps) { { if (!open) setPreviewProjectId(null) }} /> diff --git a/src/components/observer/reports/project-preview-dialog.tsx b/src/components/observer/reports/project-preview-dialog.tsx index 24d3d56..88b4240 100644 --- a/src/components/observer/reports/project-preview-dialog.tsx +++ b/src/components/observer/reports/project-preview-dialog.tsx @@ -21,6 +21,7 @@ import { scoreGradient } from '@/components/charts/chart-theme' interface ProjectPreviewDialogProps { projectId: string | null + roundId?: string open: boolean onOpenChange: (open: boolean) => void } @@ -38,9 +39,9 @@ function ScorePill({ score }: { score: number }) { ) } -export function ProjectPreviewDialog({ projectId, open, onOpenChange }: ProjectPreviewDialogProps) { +export function ProjectPreviewDialog({ projectId, roundId, open, onOpenChange }: ProjectPreviewDialogProps) { const { data, isLoading } = trpc.analytics.getProjectDetail.useQuery( - { id: projectId! }, + { id: projectId!, roundId }, { enabled: !!projectId && open }, )