// main.jsx — App entry + router

const { useState: uS, useEffect: uE } = React;

function App() {
  const route = useRoute();
  const { user } = useAuth();
  const r = parseRoute(route);

  // Route table
  let page;
  if (route === '/' || route === '') {
    page = <LandingPage />;
  } else if (route === '/login') {
    page = <LoginPage />;
  } else if (route.startsWith('/signup')) {
    page = <SignupPage />;
  } else if (r.base === '/onboarding') {
    page = <OnboardingPage step={r.step || 1} />;
  } else if (route.startsWith('/app')) {
    let inner;
    if (route === '/app' || route === '/app/dashboard') inner = <DashboardPage />;
    else if (r.base === '/app/detail') inner = <DetailPage id={r.id} />;
    else if (route.startsWith('/app/search')) inner = <SearchPage />;
    else if (route === '/app/portfolio') inner = <PortfolioPage />;
    else if (route === '/app/compare') inner = <ComparePage />;
    else if (route.startsWith('/app/loan')) inner = <LoanPage />;
    else if (route === '/app/profile') inner = <ProfilePage />;
    else if (route === '/app/notifications') inner = <NotificationsPage />;
    else inner = <DashboardPage />;
    page = <AppShell route={route}>{inner}</AppShell>;
  } else if (route === '/admin') {
    page = <AdminPage />;
  } else if (route === '/terms' || route === '/privacy' || route === '/disclaimer') {
    page = <LegalPage type={route.slice(1)} />;
  } else if (route === '/pricing') {
    page = <PricingPage />;
  } else if (route === '/about') {
    page = <AboutPage />;
  } else {
    page = <NotFound />;
  }

  return page;
}

ReactDOM.createRoot(document.getElementById('root')).render(<App />);
