import { HashRouter, Routes, Route, Navigate } from 'react-router-dom';
import { useState } from 'react';
import Header from './components/Layout/Header';
import Sidebar from './components/Layout/Sidebar';
import Dashboard from './components/Dashboard/Dashboard';
import LeadsTable from './components/Leads/LeadsTable';
import Settings from './components/Settings/Settings';
import Lists from './components/Lists/Lists';
import License from './components/License/License';
import Campaigns from './components/Campaigns/Campaigns';

// Pro-only screens (upsell when not active, functional when Pro active)
import Sequences from './components/Sequences/Sequences';
import Funnels from './components/Funnels/Funnels';
import Export from './components/Export/Export';
import Integrations from './components/Integrations/Integrations';

function App() {
  // Read synchronously — avoids flash of isPro=false on first render
  const [isPro]    = useState(() => Boolean(window.rescueFill?.isPro));
  const [isAgency] = useState(() => Boolean(window.rescueFill?.isAgency));

  return (
    <HashRouter>
      <div className="min-h-screen bg-slate-50">
        <Header isPro={isPro} />
        <div className="flex">
          <Sidebar isPro={isPro} />
          <main className="flex-1 p-6 lg:p-8 min-w-0 overflow-x-hidden">
            <Routes>
              <Route path="/"             element={<Navigate to="/dashboard" replace />} />
              <Route path="/dashboard"    element={<Dashboard />} />
              <Route path="/leads"        element={<LeadsTable isPro={isPro} />} />
              <Route path="/lists"        element={<Lists isPro={isPro} />} />
              <Route path="/campaigns"    element={<Campaigns isPro={isPro} />} />
              <Route path="/sequences"    element={<Sequences isPro={isPro} />} />
              <Route path="/funnels"      element={<Funnels isPro={isPro} />} />
              <Route path="/export"       element={<Export isPro={isPro} />} />
              <Route path="/integrations" element={<Integrations isPro={isPro} />} />
              <Route path="/license"      element={<License isPro={isPro} isAgency={isAgency} />} />
              <Route path="/settings"     element={<Settings isPro={isPro} />} />
              <Route path="*"             element={<Navigate to="/dashboard" replace />} />
            </Routes>
          </main>
        </div>
      </div>
    </HashRouter>
  );
}

export default App;
