blakeblackshear.frigate/web/src/App.jsx

48 lines
1.7 KiB
React
Raw Normal View History

2021-01-09 18:26:46 +01:00
import { h } from 'preact';
import ActivityIndicator from './components/ActivityIndicator';
2021-02-02 05:28:25 +01:00
import AppBar from './components/AppBar';
2021-01-09 18:26:46 +01:00
import Camera from './Camera';
import CameraMap from './CameraMap';
import Cameras from './Cameras';
import Debug from './Debug';
import Event from './Event';
import Events from './Events';
import { Router } from 'preact-router';
import Sidebar from './Sidebar';
2021-02-02 05:28:25 +01:00
import StyleGuide from './StyleGuide';
import Api, { FetchStatus, useConfig } from './api';
import { DarkModeProvider, SidebarProvider } from './context';
2021-01-09 18:26:46 +01:00
export default function App() {
2021-01-26 16:04:03 +01:00
const { data, status } = useConfig();
2021-02-02 05:28:25 +01:00
return (
2021-01-31 15:24:04 +01:00
<DarkModeProvider>
<SidebarProvider>
<div class="w-full">
<AppBar title="Frigate" />
{status !== FetchStatus.LOADED ? (
<div className="flex flex-grow-1 min-h-screen justify-center items-center">
<ActivityIndicator />
2021-01-31 15:24:04 +01:00
</div>
) : (
<div className="flex flex-row min-h-screen w-full bg-white dark:bg-gray-900 text-gray-900 dark:text-white">
<Sidebar />
2021-02-04 00:35:28 +01:00
<div className="w-full flex-auto p-2 mt-24 px-4 min-w-0">
<Router>
<CameraMap path="/cameras/:camera/editor" />
<Camera path="/cameras/:camera" />
<Event path="/events/:eventId" />
<Events path="/events" />
<Debug path="/debug" />
{import.meta.env.SNOWPACK_MODE !== 'development' ? <StyleGuide path="/styleguide" /> : null}
<Cameras default path="/" />
</Router>
</div>
</div>
)}
</div>
</SidebarProvider>
2021-01-31 15:24:04 +01:00
</DarkModeProvider>
2021-01-09 18:26:46 +01:00
);
}