- Create app/ layer: App.tsx, providers, routing, layouts - Create entities/session/ for auth domain - Extract SessionProvider + AppProviders composition - Add ProtectedRoute, AppRoutes to app/routing/ - Add AppLayout to app/layouts/ - Convert legacy files to re-export shims - Update Login/Register/Profile pages to useSession
78 lines
2.7 KiB
TypeScript
78 lines
2.7 KiB
TypeScript
import { Routes, Route } from 'react-router-dom';
|
|
import { AppLayout } from '../layouts/AppLayout';
|
|
import { ProtectedRoute } from './ProtectedRoute';
|
|
import { HomePage } from '@/pages/HomePage';
|
|
import { StockPage } from '@/pages/StockPage';
|
|
import { BondPage } from '@/pages/BondPage';
|
|
import { LoginPage } from '@/pages/LoginPage';
|
|
import { RegisterPage } from '@/pages/RegisterPage';
|
|
import { ProfilePage } from '@/pages/ProfilePage';
|
|
import { PortfoliosListPage } from '@/pages/portfolios/PortfoliosListPage';
|
|
import { PortfolioDetailPage } from '@/pages/portfolios/PortfolioDetailPage';
|
|
import { ScreenerPage } from '@/pages/screener/ScreenerPage';
|
|
import { BrokerAccountsPage } from '@/pages/broker-accounts';
|
|
import { BrokerAccountLayout } from '@/entities/broker-account/ui/BrokerAccountLayout';
|
|
import { BrokerAccountOverviewPage } from '@/pages/broker-account';
|
|
import { BrokerPositionsPage } from '@/pages/broker-positions';
|
|
import { BrokerOperationsPage } from '@/pages/broker-operations';
|
|
|
|
export function AppRoutes() {
|
|
return (
|
|
<Routes>
|
|
<Route element={<AppLayout />}>
|
|
<Route path="/" element={<HomePage />} />
|
|
<Route path="/stocks/:secid" element={<StockPage />} />
|
|
<Route path="/bonds/:secid" element={<BondPage />} />
|
|
<Route path="/screener" element={<ScreenerPage />} />
|
|
<Route path="/login" element={<LoginPage />} />
|
|
<Route path="/register" element={<RegisterPage />} />
|
|
<Route
|
|
path="/profile"
|
|
element={
|
|
<ProtectedRoute>
|
|
<ProfilePage />
|
|
</ProtectedRoute>
|
|
}
|
|
/>
|
|
<Route
|
|
path="/portfolios"
|
|
element={
|
|
<ProtectedRoute>
|
|
<PortfoliosListPage />
|
|
</ProtectedRoute>
|
|
}
|
|
/>
|
|
<Route
|
|
path="/portfolios/:id"
|
|
element={
|
|
<ProtectedRoute>
|
|
<PortfolioDetailPage />
|
|
</ProtectedRoute>
|
|
}
|
|
/>
|
|
<Route
|
|
path="/broker"
|
|
element={
|
|
<ProtectedRoute>
|
|
<BrokerAccountsPage />
|
|
</ProtectedRoute>
|
|
}
|
|
/>
|
|
<Route
|
|
path="/broker/:accountId"
|
|
element={
|
|
<ProtectedRoute>
|
|
<BrokerAccountLayout />
|
|
</ProtectedRoute>
|
|
}
|
|
>
|
|
<Route index element={<BrokerAccountOverviewPage />} />
|
|
<Route path="shares" element={<BrokerPositionsPage type="share" title="Акции" />} />
|
|
<Route path="bonds" element={<BrokerPositionsPage type="bond" title="Облигации" />} />
|
|
<Route path="operations" element={<BrokerOperationsPage />} />
|
|
</Route>
|
|
</Route>
|
|
</Routes>
|
|
);
|
|
}
|