From 7bc1e7f25b43d431dd9e0ee33ae662be4f6f96e9 Mon Sep 17 00:00:00 2001 From: Lukas May Date: Thu, 5 Mar 2026 21:17:00 +0100 Subject: [PATCH] perf: Remove preview polling in favour of SSE-driven invalidation refetchInterval: 3000 on listPreviews and getPreviewStatus is now redundant. Phase oMHtTekCDgdnBG0kkk25A wired useLiveUpdates in $id.tsx to invalidate both queries on every preview:* SSE event, so queries refetch exactly once per state change instead of on a fixed 3-second timer. Co-Authored-By: Claude Sonnet 4.6 --- apps/web/src/components/review/ReviewTab.tsx | 2 -- 1 file changed, 2 deletions(-) diff --git a/apps/web/src/components/review/ReviewTab.tsx b/apps/web/src/components/review/ReviewTab.tsx index 9945224..6b6d85c 100644 --- a/apps/web/src/components/review/ReviewTab.tsx +++ b/apps/web/src/components/review/ReviewTab.tsx @@ -80,7 +80,6 @@ export function ReviewTab({ initiativeId }: ReviewTabProps) { // Preview state const previewsQuery = trpc.listPreviews.useQuery( { initiativeId }, - { refetchInterval: 3000 }, ); const existingPreview = previewsQuery.data?.find( (p) => p.phaseId === activePhaseId || p.initiativeId === initiativeId, @@ -90,7 +89,6 @@ export function ReviewTab({ initiativeId }: ReviewTabProps) { { previewId: activePreviewId ?? existingPreview?.id ?? "" }, { enabled: !!(activePreviewId ?? existingPreview?.id), - refetchInterval: 3000, }, ); const preview = previewStatusQuery.data ?? existingPreview;