phase 16: React dashboard with full platform control and analytics
This commit is contained in:
@@ -0,0 +1,170 @@
|
||||
import {
|
||||
createRouter,
|
||||
createRootRoute,
|
||||
createRoute,
|
||||
Outlet,
|
||||
} from '@tanstack/react-router';
|
||||
import { AppLayout } from './components/AppLayout';
|
||||
|
||||
import { CompaniesPage } from './pages/Companies';
|
||||
import { CompanyDetailPage } from './pages/CompanyDetail';
|
||||
import { WatchlistsPage } from './pages/Watchlists';
|
||||
import { DocumentsPage } from './pages/Documents';
|
||||
import { DocumentDetailPage } from './pages/DocumentDetail';
|
||||
import { TrendsPage } from './pages/Trends';
|
||||
import { TrendDetailPage } from './pages/TrendDetail';
|
||||
import { RecommendationsPage } from './pages/Recommendations';
|
||||
import { RecommendationDetailPage } from './pages/RecommendationDetail';
|
||||
import { OrdersPage } from './pages/Orders';
|
||||
import { OrderDetailPage } from './pages/OrderDetail';
|
||||
import { PositionsPage } from './pages/Positions';
|
||||
import { TradingPage } from './pages/Trading';
|
||||
import { OpsPipelinePage } from './pages/OpsPipeline';
|
||||
import { OpsIngestionPage } from './pages/OpsIngestion';
|
||||
import { OpsModelPage } from './pages/OpsModel';
|
||||
import { OpsCoveragePage } from './pages/OpsCoverage';
|
||||
import { SqlExplorerPage } from './pages/SqlExplorer';
|
||||
import { DashboardsPage } from './pages/Dashboards';
|
||||
import { HomePage } from './pages/Home';
|
||||
|
||||
// Root route wraps everything in the app shell layout
|
||||
const rootRoute = createRootRoute({
|
||||
component: () => (
|
||||
<AppLayout>
|
||||
<Outlet />
|
||||
</AppLayout>
|
||||
),
|
||||
});
|
||||
|
||||
const indexRoute = createRoute({
|
||||
getParentRoute: () => rootRoute,
|
||||
path: '/',
|
||||
component: HomePage,
|
||||
});
|
||||
|
||||
const companiesRoute = createRoute({
|
||||
getParentRoute: () => rootRoute,
|
||||
path: '/companies',
|
||||
component: CompaniesPage,
|
||||
});
|
||||
const companyDetailRoute = createRoute({
|
||||
getParentRoute: () => rootRoute,
|
||||
path: '/companies/$id',
|
||||
component: CompanyDetailPage,
|
||||
});
|
||||
const watchlistsRoute = createRoute({
|
||||
getParentRoute: () => rootRoute,
|
||||
path: '/watchlists',
|
||||
component: WatchlistsPage,
|
||||
});
|
||||
const documentsRoute = createRoute({
|
||||
getParentRoute: () => rootRoute,
|
||||
path: '/documents',
|
||||
component: DocumentsPage,
|
||||
});
|
||||
const documentDetailRoute = createRoute({
|
||||
getParentRoute: () => rootRoute,
|
||||
path: '/documents/$id',
|
||||
component: DocumentDetailPage,
|
||||
});
|
||||
const trendsRoute = createRoute({
|
||||
getParentRoute: () => rootRoute,
|
||||
path: '/trends',
|
||||
component: TrendsPage,
|
||||
});
|
||||
const trendDetailRoute = createRoute({
|
||||
getParentRoute: () => rootRoute,
|
||||
path: '/trends/$id',
|
||||
component: TrendDetailPage,
|
||||
});
|
||||
const recommendationsRoute = createRoute({
|
||||
getParentRoute: () => rootRoute,
|
||||
path: '/recommendations',
|
||||
component: RecommendationsPage,
|
||||
});
|
||||
const recommendationDetailRoute = createRoute({
|
||||
getParentRoute: () => rootRoute,
|
||||
path: '/recommendations/$id',
|
||||
component: RecommendationDetailPage,
|
||||
});
|
||||
const ordersRoute = createRoute({
|
||||
getParentRoute: () => rootRoute,
|
||||
path: '/orders',
|
||||
component: OrdersPage,
|
||||
});
|
||||
const orderDetailRoute = createRoute({
|
||||
getParentRoute: () => rootRoute,
|
||||
path: '/orders/$id',
|
||||
component: OrderDetailPage,
|
||||
});
|
||||
const positionsRoute = createRoute({
|
||||
getParentRoute: () => rootRoute,
|
||||
path: '/positions',
|
||||
component: PositionsPage,
|
||||
});
|
||||
const tradingRoute = createRoute({
|
||||
getParentRoute: () => rootRoute,
|
||||
path: '/trading',
|
||||
component: TradingPage,
|
||||
});
|
||||
const opsPipelineRoute = createRoute({
|
||||
getParentRoute: () => rootRoute,
|
||||
path: '/ops/pipeline',
|
||||
component: OpsPipelinePage,
|
||||
});
|
||||
const opsIngestionRoute = createRoute({
|
||||
getParentRoute: () => rootRoute,
|
||||
path: '/ops/ingestion',
|
||||
component: OpsIngestionPage,
|
||||
});
|
||||
const opsModelRoute = createRoute({
|
||||
getParentRoute: () => rootRoute,
|
||||
path: '/ops/model',
|
||||
component: OpsModelPage,
|
||||
});
|
||||
const opsCoverageRoute = createRoute({
|
||||
getParentRoute: () => rootRoute,
|
||||
path: '/ops/coverage',
|
||||
component: OpsCoveragePage,
|
||||
});
|
||||
const analyticsQueryRoute = createRoute({
|
||||
getParentRoute: () => rootRoute,
|
||||
path: '/analytics/query',
|
||||
component: SqlExplorerPage,
|
||||
});
|
||||
const analyticsDashboardsRoute = createRoute({
|
||||
getParentRoute: () => rootRoute,
|
||||
path: '/analytics/dashboards',
|
||||
component: DashboardsPage,
|
||||
});
|
||||
|
||||
const routeTree = rootRoute.addChildren([
|
||||
indexRoute,
|
||||
companiesRoute,
|
||||
companyDetailRoute,
|
||||
watchlistsRoute,
|
||||
documentsRoute,
|
||||
documentDetailRoute,
|
||||
trendsRoute,
|
||||
trendDetailRoute,
|
||||
recommendationsRoute,
|
||||
recommendationDetailRoute,
|
||||
ordersRoute,
|
||||
orderDetailRoute,
|
||||
positionsRoute,
|
||||
tradingRoute,
|
||||
opsPipelineRoute,
|
||||
opsIngestionRoute,
|
||||
opsModelRoute,
|
||||
opsCoverageRoute,
|
||||
analyticsQueryRoute,
|
||||
analyticsDashboardsRoute,
|
||||
]);
|
||||
|
||||
export const router = createRouter({ routeTree });
|
||||
|
||||
declare module '@tanstack/react-router' {
|
||||
interface Register {
|
||||
router: typeof router;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user