← Back
import { BrowserRouter, Routes, Route } from 'react-router-dom';
import { PrivyProvider } from '@privy-io/react-auth';
import ErrorBoundary from './components/ErrorBoundary';
import WalletProvider from './components/WalletProvider';
import { SiweAuthProvider } from './hooks/SiweAuthProvider';

// Privy embedded wallets for copy-trading custody (Turnkey→Privy). Email login
// provisions a non-custodial EOA → Polymarket Safe (M1+). App ID is public.
const PRIVY_APP_ID = import.meta.env.VITE_PRIVY_APP_ID as string;
import Layout from './components/layout/Layout';
import ScreenerPage from './pages/ScreenerPage';
import TradePage from './pages/TradePage';
import LeadersPage from './pages/LeadersPage';
import MorePage from './pages/MorePage';
import WalletPage from './pages/WalletPage';
import MarketDetailPage from './pages/MarketDetailPage';
import AlertsPage from './pages/AlertsPage';
import AnalyticsPage from './pages/AnalyticsPage';
import UserAnalyticsPage from './pages/UserAnalyticsPage';
import WhaleProfilePage from './pages/WhaleProfilePage';
import LeaderboardPage from './pages/LeaderboardPage';
import SettingsPage from './pages/SettingsPage';
import CopyTradingPage from './pages/CopyTradingPage';
import './App.css';

export default function App() {
  return (
    <ErrorBoundary>
      <PrivyProvider
        appId={PRIVY_APP_ID}
        config={{
          loginMethods: ['email'],
          embeddedWallets: { ethereum: { createOnLogin: 'users-without-wallets' }, showWalletUIs: true },
          appearance: { theme: 'dark', accentColor: '#6366f1' },
        }}
      >
      <WalletProvider>
        <SiweAuthProvider>
        <BrowserRouter>
          <Routes>
            <Route element={<Layout />}>
              {/* Copy-trading pivot: Лидеры — главная, портфель на /portfolio
                  («Мои сделки»). Сироты /signals /feed /search /whales /trade
                  выпилены при переходе на 4-пунктовую навигацию. */}
              <Route path="/" element={<LeadersPage />} />
              <Route path="/screener" element={<ScreenerPage />} />
              <Route path="/portfolio" element={<TradePage />} />
              <Route path="/alerts" element={<AlertsPage />} />
              <Route path="/more" element={<MorePage />} />
              <Route path="/wallet" element={<WalletPage />} />
              <Route path="/leaderboard" element={<LeaderboardPage />} />
              <Route path="/settings" element={<SettingsPage />} />
              <Route path="/analytics/szhub2026" element={<AnalyticsPage />} />
              <Route path="/analytics/users" element={<UserAnalyticsPage />} />
              <Route path="/market/:id" element={<MarketDetailPage />} />
              <Route path="/whale" element={<WhaleProfilePage />} />
            </Route>
          </Routes>
        </BrowserRouter>
        </SiweAuthProvider>
      </WalletProvider>
      </PrivyProvider>
    </ErrorBoundary>
  );
}

📜 Git History

6c47fa4chore: local Polikopi project home + Phase 1 redesign artifacts12 days ago
Show last diff
Loading...