-
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrouter.tsx
More file actions
71 lines (66 loc) · 1.98 KB
/
router.tsx
File metadata and controls
71 lines (66 loc) · 1.98 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
import { useEffect } from 'react';
import { BrowserRouter, Routes, Route } from 'react-router';
import { toast } from 'sonner';
import { AppSidebar } from '@/components/app-sidebar';
import { SiteHeader } from '@/components/site-header';
import { SidebarInset, SidebarProvider } from '@/components/ui/sidebar';
import { Toaster } from '@/components/ui/sonner';
import Logs from './pages/log';
import Performance from './pages/performance';
import Observability from './pages/observable';
import Plugins from './pages/plugins';
import { SettingsModal } from './pages/settings';
import { useConfigStore } from './store/config';
import { AboutModal } from './pages/about';
import { useLogs } from './hooks/use-logs';
const Modals = () => {
const disconnected = useConfigStore((state) => state.disconnected);
useLogs();
useEffect(() => {
if (disconnected) {
toast.error('Server disconnected', {
position: 'bottom-center',
});
} else {
toast.dismiss();
toast.success('Server connected', {
position: 'bottom-center',
});
}
}, [disconnected]);
return (
<>
<SettingsModal />
<AboutModal />
<Toaster richColors />
</>
);
};
export const Router = () => {
return (
<BrowserRouter>
<SidebarProvider
style={
{
'--sidebar-width': 'calc(var(--spacing) * 72)',
'--header-height': 'calc(var(--spacing) * 12)',
} as React.CSSProperties
}
>
<AppSidebar variant="inset" />
<SidebarInset>
<SiteHeader />
<Routes>
<Route path="/" element={<Logs />} />
<Route path="/performance" element={<Performance />} />
<Route path="/observability" element={<Observability />} />
<Route path="/plugins">
<Route path=":plugin" element={<Plugins />} />
</Route>
</Routes>
</SidebarInset>
</SidebarProvider>
<Modals />
</BrowserRouter>
);
};