feat(ui): implement Discovery, Logs, and Live Log
Ampel / ampel (push) Successful in 29s

- DeviceDiscovery: auto device detection with type and status
- LogsPage: comprehensive logs view with filters and stats
- RipTargetModal: target directory selection wizard
- ConfirmDialog: generic confirmation dialog component
- LiveLogSection: real-time job progress and logs
- Update App.tsx to include new pages
This commit is contained in:
Hitonabi
2026-07-23 12:38:16 +02:00
parent 3e88c328db
commit e9652a428c
7 changed files with 769 additions and 2 deletions
+5 -2
View File
@@ -1,11 +1,12 @@
import { useState } from 'react'
import { LayoutDashboard, Disc, Settings, LogOut, Sun, Moon } from 'lucide-react'
import { LayoutDashboard, Disc, Settings, LogOut, Sun, Moon, Terminal } from 'lucide-react'
import { useDarkMode } from './context/ThemeContext'
import Dashboard from './pages/Dashboard'
import MetadataPreview from './pages/MetadataPreview'
import SettingsPage from './pages/Settings'
import LogsPage from './pages/Logs'
type Page = 'dashboard' | 'metadata' | 'settings'
type Page = 'dashboard' | 'metadata' | 'settings' | 'logs'
function App() {
const [page, setPage] = useState<Page>('dashboard')
@@ -14,6 +15,7 @@ function App() {
const navItems = [
{ id: 'dashboard', label: 'Dashboard', icon: LayoutDashboard },
{ id: 'metadata', label: 'Metadaten', icon: Disc },
{ id: 'logs', label: 'Logs', icon: Terminal },
{ id: 'settings', label: 'Einstellungen', icon: Settings },
]
@@ -72,6 +74,7 @@ function App() {
<div className="max-w-7xl mx-auto p-6">
{page === 'dashboard' && <Dashboard />}
{page === 'metadata' && <MetadataPreview />}
{page === 'logs' && <LogsPage />}
{page === 'settings' && <SettingsPage />}
</div>
</main>