mirror of
https://github.com/azaion/ui.git
synced 2026-06-21 08:11:10 +00:00
f754afff46
ci/woodpecker/push/build-arm Pipeline failed
Reskin to v2 surface/accent tokens + JetBrains Mono headings to match _docs/ui_design/v2/plugin/annotations.html. Add scrubber with class-colored annotation marks, canvas top bar (zoom/cursor/dims), floating AI-detection banner, multi-band gradient rows in the annotations sidebar, class-distribution summary footer, and DOM-overlay bbox labels with affiliation icon + readiness dot. Split VideoPlayer chrome out into the page-level controls row (transport/frame-step/save/delete/AI-detect/mute/volume) and a new Scrubber component; player events replace 200ms polling. Other: - Auth dev bypass via VITE_DEV_AUTH_BYPASS (gated on import.meta.env.DEV). - Mount SavedAnnotationsProvider in App so AnnotationsPage doesn't crash. - Extract hexToRgba to src/class-colors and time helpers to src/features/annotations/time.ts (dedup across CanvasEditor / Sidebar / AnnotationsPage). - CanvasEditor: shallow-compare label chips before commit, NaN-guard annotation-time parser, cancel cursor RAF on unmount. - AnnotationsPage: track AI-banner close timer, push initial volume to the <video> on media change, drop the duplicate parent muted state. - Fixed sidebar widths (resize handles removed per design).
44 lines
1.7 KiB
TypeScript
44 lines
1.7 KiB
TypeScript
import { Routes, Route, Navigate } from 'react-router-dom'
|
|
import { AuthProvider, ProtectedRoute } from './auth'
|
|
import { Header, FlightProvider, SavedAnnotationsProvider } from './components'
|
|
import { LoginPage } from './features/login'
|
|
import { FlightsPage } from './features/flights'
|
|
import { AnnotationsPage } from './features/annotations'
|
|
import { DatasetPage } from './features/dataset'
|
|
import { AdminPage } from './features/admin'
|
|
import { SettingsPage } from './features/settings'
|
|
|
|
export default function App() {
|
|
return (
|
|
<AuthProvider>
|
|
<Routes>
|
|
<Route path="/login" element={<LoginPage />} />
|
|
<Route
|
|
path="/*"
|
|
element={
|
|
<ProtectedRoute>
|
|
<FlightProvider>
|
|
<SavedAnnotationsProvider>
|
|
<div className="flex flex-col h-screen">
|
|
<Header />
|
|
<div className="flex-1 overflow-hidden">
|
|
<Routes>
|
|
<Route path="/flights" element={<FlightsPage />} />
|
|
<Route path="/annotations" element={<AnnotationsPage />} />
|
|
<Route path="/dataset" element={<DatasetPage />} />
|
|
<Route path="/admin" element={<AdminPage />} />
|
|
<Route path="/settings" element={<SettingsPage />} />
|
|
<Route path="*" element={<Navigate to="/flights" replace />} />
|
|
</Routes>
|
|
</div>
|
|
</div>
|
|
</SavedAnnotationsProvider>
|
|
</FlightProvider>
|
|
</ProtectedRoute>
|
|
}
|
|
/>
|
|
</Routes>
|
|
</AuthProvider>
|
|
)
|
|
}
|