import { useEffect, useState } from 'react'; import { useConfig } from './hooks'; import { Advanced, ErrorBoundary } from './components'; import { CloudComponent } from './components/CloudComponent'; import { CentralComponent } from './components/CentralComponent'; import { DnsComponent } from './components/DnsComponent'; import { DhcpComponent } from './components/DhcpComponent'; import { PxeComponent } from './components/PxeComponent'; import { ClusterNodesComponent } from './components/ClusterNodesComponent'; import { ClusterServicesComponent } from './components/ClusterServicesComponent'; import { AppsComponent } from './components/AppsComponent'; import { AppSidebar } from './components/AppSidebar'; import { SidebarProvider, SidebarInset, SidebarTrigger } from './components/ui/sidebar'; import type { Phase, Tab } from './components/AppSidebar'; function App() { const [currentTab, setCurrentTab] = useState('cloud'); const [completedPhases, setCompletedPhases] = useState([]); const { config } = useConfig(); // Update phase state from config when it changes useEffect(() => { console.log('Config changed:', config); console.log('config?.wildcloud:', config?.wildcloud); if (config?.wildcloud?.currentPhase) { console.log('Setting currentTab to:', config.wildcloud.currentPhase); setCurrentTab(config.wildcloud.currentPhase as Phase); } if (config?.wildcloud?.completedPhases) { console.log('Setting completedPhases to:', config.wildcloud.completedPhases); setCompletedPhases(config.wildcloud.completedPhases as Phase[]); } }, [config]); const handlePhaseComplete = (phase: Phase) => { if (!completedPhases.includes(phase)) { setCompletedPhases(prev => [...prev, phase]); } // Auto-advance to next phase (excluding advanced) const phases: Phase[] = ['setup', 'infrastructure', 'cluster', 'apps']; const currentIndex = phases.indexOf(phase); if (currentIndex < phases.length - 1) { setCurrentTab(phases[currentIndex + 1]); } }; const renderCurrentTab = () => { switch (currentTab) { case 'cloud': return ( ); case 'central': return ( ); case 'dns': return ( ); case 'dhcp': return ( ); case 'pxe': return ( ); case 'setup': case 'infrastructure': return ( handlePhaseComplete('infrastructure')} /> ); case 'cluster': return ( handlePhaseComplete('cluster')} /> ); case 'apps': return ( handlePhaseComplete('apps')} /> ); case 'advanced': return ( ); default: return ( ); } }; return (

Dashboard

{renderCurrentTab()}
); } export default App;