devrajsinh2012 commited on
Commit
b84279a
·
1 Parent(s): c476eae

fix: default all pipeline modes to available in ModelSelector

Browse files
Files changed (1) hide show
  1. frontend/src/App.tsx +14 -6
frontend/src/App.tsx CHANGED
@@ -21,7 +21,11 @@ function App() {
21
  const [stage, setStage] = useState<AppStage>(showOnboarding ? 'onboarding' : 'model-select')
22
  const savedModel = localStorage.getItem('sanketsetu-model-mode') as ModelMode | null
23
  const [selectedModel, setSelectedModel] = useState<ModelMode>(savedModel ?? 'ensemble')
24
- const [availableModes, setAvailableModes] = useState<Set<ModelMode>>(new Set(['ensemble']))
 
 
 
 
25
 
26
  const handleOnboardingDone = () => {
27
  localStorage.setItem('sanketsetu-onboarded', '1')
@@ -44,13 +48,17 @@ function App() {
44
  const data = (await res.json()) as { pipelines_available?: string[] }
45
  if (!active) return
46
 
47
- const next = new Set<ModelMode>(['ensemble'])
48
- for (const mode of data.pipelines_available ?? []) {
49
- if (mode === 'A' || mode === 'B' || mode === 'C') {
50
- next.add(mode)
 
 
 
 
51
  }
 
52
  }
53
- setAvailableModes(next)
54
  } catch {
55
  // Keep local defaults when backend health is unavailable.
56
  }
 
21
  const [stage, setStage] = useState<AppStage>(showOnboarding ? 'onboarding' : 'model-select')
22
  const savedModel = localStorage.getItem('sanketsetu-model-mode') as ModelMode | null
23
  const [selectedModel, setSelectedModel] = useState<ModelMode>(savedModel ?? 'ensemble')
24
+ // Default all modes to available so the selector is usable even before the
25
+ // health check completes or if the backend is temporarily unreachable.
26
+ const [availableModes, setAvailableModes] = useState<Set<ModelMode>>(
27
+ new Set<ModelMode>(['ensemble', 'A', 'B', 'C'])
28
+ )
29
 
30
  const handleOnboardingDone = () => {
31
  localStorage.setItem('sanketsetu-onboarded', '1')
 
48
  const data = (await res.json()) as { pipelines_available?: string[] }
49
  if (!active) return
50
 
51
+ // Only restrict availability when the backend explicitly reports which
52
+ // pipelines are loaded. If the list is empty (still loading) keep all
53
+ // modes selectable so the user isn't blocked.
54
+ const reported = data.pipelines_available ?? []
55
+ if (reported.length > 0) {
56
+ const next = new Set<ModelMode>(['ensemble'])
57
+ for (const mode of reported) {
58
+ if (mode === 'A' || mode === 'B' || mode === 'C') next.add(mode as ModelMode)
59
  }
60
+ setAvailableModes(next)
61
  }
 
62
  } catch {
63
  // Keep local defaults when backend health is unavailable.
64
  }