From af33904b694c8ff010f0b32fdc29ad52e401ceb9 Mon Sep 17 00:00:00 2001 From: Daniel Roth Date: Thu, 26 Mar 2026 10:54:13 +0000 Subject: [PATCH] try to get task status before enabling certain buttons (not working yet)- --- .../reporting/ReportingClientArea.tsx | 34 ++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/src/app/portfolio/[slug]/(portfolio)/reporting/ReportingClientArea.tsx b/src/app/portfolio/[slug]/(portfolio)/reporting/ReportingClientArea.tsx index 47dfeaf..31f5b93 100644 --- a/src/app/portfolio/[slug]/(portfolio)/reporting/ReportingClientArea.tsx +++ b/src/app/portfolio/[slug]/(portfolio)/reporting/ReportingClientArea.tsx @@ -204,7 +204,39 @@ export function ReportingClientArea({ // Baseline stays baseline const activeMetrics = baseline; - const scenarioBusy = !!selectedScenarioId && (isLoading || isFetching); + const { + data: taskData, + isLoading: taskLoading, + } = useQuery({ + queryKey: ["task", portfolioId], + queryFn: async () => { + const res = await fetch( + `/api/task?source=portfolio_id&source_id=${portfolioId}&service=plan_categorisation`, + ); + + if (!res.ok) throw new Error("Failed to fetch task"); + return res.json(); + }, + refetchInterval: (data) => { + const status = data?.state?.data?.task?.status; + + if (status === "Complete" || status === "Failed") { + return false; + } + + return 3000; + }, + refetchOnWindowFocus: false, + }); + + const taskStatus = taskData?.task?.status; + + const isTaskInProgress = + taskStatus && taskStatus !== "Complete" && taskStatus !== "Failed"; + + const scenarioBusy = + !!selectedScenarioId && (isLoading || isFetching || isTaskInProgress); + return ( <>