From f6f26130b99acf1ee66e8e418e7869ed9397c44b Mon Sep 17 00:00:00 2001 From: Gabor Szabo Date: Tue, 26 May 2026 10:40:53 +0200 Subject: [PATCH] fix(ui): rename duplicate trainFamily binding in forecast page (#307) PRP-37 introduced `trainFamily` as the train-card form state (useState at L68), shadowing an existing PRP-31 derived `trainFamily` at L120 sourced from `useJobFeatureMetadata`. Babel/Vite reject the file with `Cannot redeclare block-scoped variable 'trainFamily'`; tsc reports TS2451 at both sites. The forecast page does not mount. Rename L120 to `loadedTrainFamily` (distinct semantics: derived from a loaded predict job's training metadata, used by the `ModelFamilyBadge` in the Model details collapsible). The L68 form state keeps the `trainFamily` name. --- frontend/src/pages/visualize/forecast.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/frontend/src/pages/visualize/forecast.tsx b/frontend/src/pages/visualize/forecast.tsx index 3f31b971..a7c7cfb8 100644 --- a/frontend/src/pages/visualize/forecast.tsx +++ b/frontend/src/pages/visualize/forecast.tsx @@ -117,7 +117,7 @@ export default function ForecastPage() { // from `job.result.model_path` directly. Recorded in memory // `[[scenario-run-id-vs-registry-run-id]]`. const trainJobMetadata = useJobFeatureMetadata(trainJobId, !!trainJobId) - const trainFamily = trainJobMetadata.data?.model_family + const loadedTrainFamily = trainJobMetadata.data?.model_family async function handleRunForecast() { if (!trainRunId) return @@ -494,8 +494,8 @@ export default function ForecastPage() { Model details - {trainFamily ? ( - + {loadedTrainFamily ? ( + ) : null}