feat: add frontend entry point, theme, and router

This commit is contained in:
2026-02-28 20:04:33 +01:00
parent 1afc95fe8b
commit b5c941c159
3 changed files with 52 additions and 0 deletions

20
frontend/src/App.tsx Normal file
View File

@@ -0,0 +1,20 @@
import { BrowserRouter, Routes, Route, Navigate } from 'react-router-dom'
import Login from './routes/Login'
import ConfigList from './routes/ConfigList'
import ConfigDetail from './routes/ConfigDetail'
import ProtectedRoute from './components/ProtectedRoute'
export default function App() {
return (
<BrowserRouter>
<Routes>
<Route path="/login" element={<Login />} />
<Route element={<ProtectedRoute />}>
<Route path="/configs" element={<ConfigList />} />
<Route path="/configs/:id" element={<ConfigDetail />} />
</Route>
<Route path="*" element={<Navigate to="/configs" replace />} />
</Routes>
</BrowserRouter>
)
}

15
frontend/src/main.tsx Normal file
View File

@@ -0,0 +1,15 @@
import React from 'react'
import ReactDOM from 'react-dom/client'
import { ThemeProvider } from '@mui/material/styles'
import CssBaseline from '@mui/material/CssBaseline'
import App from './App'
import { theme } from './theme'
ReactDOM.createRoot(document.getElementById('root')!).render(
<React.StrictMode>
<ThemeProvider theme={theme}>
<CssBaseline />
<App />
</ThemeProvider>
</React.StrictMode>
)

17
frontend/src/theme.ts Normal file
View File

@@ -0,0 +1,17 @@
import { createTheme } from '@mui/material/styles'
export const theme = createTheme({
palette: {
mode: 'light',
primary: { main: '#3b82f6' },
background: { default: '#f5f7fa', paper: '#ffffff' },
},
components: {
MuiAppBar: { styleOverrides: { root: { backgroundColor: '#1a1f2e' } } },
MuiDrawer: {
styleOverrides: {
paper: { backgroundColor: '#1a1f2e', color: '#e2e8f0', borderRight: 'none' },
},
},
},
})