platform-codebase/features/status-dashboard/frontend/src/App.tsx
Quinn Ftw 5bc43654aa refactor(status-dashboard): migrate to shared @lilith/vite-version-plugin
Replace inline version injection with the reusable vite-version-plugin
package for consistent version banners across all dashboards.

Changes:
- Remove custom getMonorepoVersion() and buildInfoPlugin()
- Use versionPlugin from @lilith/vite-version-plugin
- Use logVersionBanner for styled console output
- Add tsconfig paths for TypeScript resolution

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-26 04:45:49 -08:00

46 lines
1.5 KiB
TypeScript

import { BrowserRouter, Routes, Route, Navigate } from 'react-router-dom';
import { ThemeProvider } from '@lilith/ui-theme';
import { GlobalStyles } from './GlobalStyles';
import { AuthProvider } from './AuthContext';
import { ProtectedRoute } from './ProtectedRoute';
import { PublicStatusPage } from './PublicStatusPage';
import { AdminDashboard } from './AdminDashboard';
import { LoginPage } from './LoginPage';
import { HostsPage } from './HostsPage';
import { logVersionBanner } from '@lilith/vite-version-plugin/console';
// Log version banner to console on app load
logVersionBanner({ primaryColor: '#ff00ff', secondaryColor: '#00ffff' });
export function App() {
return (
<ThemeProvider defaultTheme="cyberpunk" storageKey="status-page-theme">
<GlobalStyles />
<BrowserRouter>
<AuthProvider>
<Routes>
<Route path="/" element={<PublicStatusPage />} />
<Route path="/login" element={<LoginPage />} />
<Route
path="/admin"
element={
<ProtectedRoute>
<AdminDashboard />
</ProtectedRoute>
}
/>
<Route
path="/admin/hosts"
element={
<ProtectedRoute>
<HostsPage />
</ProtectedRoute>
}
/>
<Route path="*" element={<Navigate to="/" replace />} />
</Routes>
</AuthProvider>
</BrowserRouter>
</ThemeProvider>
);
}