// src/App.tsx // Step router — renders the correct step component based on currentStep. // StepIndicator renders above each step as persistent breadcrumb navigation. import { useWizard } from './store/context'; import { WizardProvider } from './store/context'; import { StepIndicator } from './components/wizard/StepIndicator'; import { BackendSelectionStep } from './components/wizard/BackendSelectionStep'; import { RemoteConfigStep } from './components/wizard/RemoteConfigStep'; import { DeploymentStep } from './components/wizard/DeploymentStep'; import { ReviewStep } from './components/wizard/ReviewStep'; function WizardShell() { const { state } = useWizard(); const steps = [ , // Key on backendType to force remount when backend changes — prevents stale form values , , , ]; // Guard: clamp to valid range const stepIndex = Math.min(state.currentStep, steps.length - 1); const CurrentStep = steps[stepIndex]; return (

Ready2Blob

{CurrentStep}
); } export default function App() { return ( ); }