* experimental livestrea support * test livestream * update wait time detection * update livestream functions * persist and restore livestreams monitor session * fan-in logging * deps update * added live time display * livestream monitor prototype * changed to default logger instead of passing *slog.Logger everywhere * code refactoring, comments
88 lines
2.1 KiB
TypeScript
88 lines
2.1 KiB
TypeScript
import { CircularProgress } from '@mui/material'
|
|
import { Suspense, lazy } from 'react'
|
|
import { createHashRouter } from 'react-router-dom'
|
|
import Layout from './Layout'
|
|
import Terminal from './views/Terminal'
|
|
|
|
const Home = lazy(() => import('./views/Home'))
|
|
const Login = lazy(() => import('./views/Login'))
|
|
const Archive = lazy(() => import('./views/Archive'))
|
|
const Settings = lazy(() => import('./views/Settings'))
|
|
const LiveStream = lazy(() => import('./views/Livestream'))
|
|
|
|
const ErrorBoundary = lazy(() => import('./components/ErrorBoundary'))
|
|
|
|
export const router = createHashRouter([
|
|
{
|
|
path: '/',
|
|
Component: () => <Layout />,
|
|
children: [
|
|
{
|
|
path: '/',
|
|
element: (
|
|
<Suspense fallback={<CircularProgress />}>
|
|
<Home />
|
|
</Suspense >
|
|
),
|
|
errorElement: (
|
|
<Suspense fallback={<CircularProgress />}>
|
|
<ErrorBoundary />
|
|
</Suspense >
|
|
)
|
|
},
|
|
{
|
|
path: '/settings',
|
|
element: (
|
|
<Suspense fallback={<CircularProgress />}>
|
|
<Settings />
|
|
</Suspense >
|
|
)
|
|
},
|
|
{
|
|
path: '/log',
|
|
element: (
|
|
<Suspense fallback={<CircularProgress />}>
|
|
<Terminal />
|
|
</Suspense >
|
|
)
|
|
},
|
|
{
|
|
path: '/archive',
|
|
element: (
|
|
<Suspense fallback={<CircularProgress />}>
|
|
<Archive />
|
|
</Suspense >
|
|
),
|
|
errorElement: (
|
|
<Suspense fallback={<CircularProgress />}>
|
|
<ErrorBoundary />
|
|
</Suspense >
|
|
)
|
|
},
|
|
{
|
|
path: '/login',
|
|
element: (
|
|
<Suspense fallback={<CircularProgress />}>
|
|
<Login />
|
|
</Suspense >
|
|
)
|
|
},
|
|
{
|
|
path: '/error',
|
|
element: (
|
|
<Suspense fallback={<CircularProgress />}>
|
|
<ErrorBoundary />
|
|
</Suspense >
|
|
)
|
|
},
|
|
{
|
|
path: '/monitor',
|
|
element: (
|
|
<Suspense fallback={<CircularProgress />}>
|
|
<LiveStream />
|
|
</Suspense >
|
|
)
|
|
},
|
|
]
|
|
},
|
|
]) |