import { AuthProvider, useAuth } from './context/AuthContext'; import { NodeProvider } from './context/NodeContext'; import { LicenseProvider } from './context/LicenseContext'; import { Login } from './components/Login'; import { Setup } from './components/Setup'; import EditorLayout from './components/EditorLayout'; import { MfaChallenge } from './components/MfaChallenge'; import { DeployFeedbackProvider } from './context/DeployFeedbackContext'; import { DeployFeedbackPortal } from './components/DeployFeedbackPortal'; import { ToastContainer } from './components/ui/toast'; function AppContent() { const { appStatus, isAuthenticated, needsSetup, completeSetup } = useAuth(); if (appStatus === 'loading') { return (
Loading...
); } if (needsSetup) { return ; } if (appStatus === 'mfaChallenge') { return ; } if (!isAuthenticated) { return ; } return ( {/* Portal lives inside LicenseProvider so DeployFeedbackModal can call useLicense() (M-3 atomic-deploy notice depends on isPaid). Outer DeployFeedbackProvider is still an ancestor through App. */} ); } function App() { return ( ); } export default App;