blakeblackshear.frigate/web/src/app.tsx

53 lines
2.2 KiB
TypeScript
Raw Normal View History

2021-02-07 22:46:05 +01:00
import * as Routes from './routes';
2021-01-09 18:26:46 +01:00
import { h } from 'preact';
import ActivityIndicator from './components/ActivityIndicator';
2021-02-07 22:46:05 +01:00
import AsyncRoute from 'preact-async-route';
import AppBar from './AppBar';
2021-02-07 22:46:05 +01:00
import Cameras from './routes/Cameras';
2021-01-09 18:26:46 +01:00
import { Router } from 'preact-router';
import Sidebar from './Sidebar';
import { DarkModeProvider, DrawerProvider } from './context';
2022-02-26 20:11:00 +01:00
import useSWR from 'swr';
2021-01-09 18:26:46 +01:00
export default function App() {
2022-02-26 20:11:00 +01:00
const { data: config } = useSWR('config');
Update web deps (#4383) * Bump jest from 27.5.1 to 29.3.1 in /web Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest) from 27.5.1 to 29.3.1. - [Release notes](https://github.com/facebook/jest/releases) - [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/jest/commits/v29.3.1/packages/jest) --- updated-dependencies: - dependency-name: jest dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> * Bump msw from 0.38.2 to 0.48.0 in /web Bumps [msw](https://github.com/mswjs/msw) from 0.38.2 to 0.48.0. - [Release notes](https://github.com/mswjs/msw/releases) - [Changelog](https://github.com/mswjs/msw/blob/main/CHANGELOG.md) - [Commits](https://github.com/mswjs/msw/compare/v0.38.2...v0.48.0) --- updated-dependencies: - dependency-name: msw dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> * Bump idb-keyval from 6.1.0 to 6.2.0 in /web Bumps [idb-keyval](https://github.com/jakearchibald/idb-keyval) from 6.1.0 to 6.2.0. - [Release notes](https://github.com/jakearchibald/idb-keyval/releases) - [Changelog](https://github.com/jakearchibald/idb-keyval/blob/main/CHANGELOG.md) - [Commits](https://github.com/jakearchibald/idb-keyval/compare/v6.1.0...v6.2.0) --- updated-dependencies: - dependency-name: idb-keyval dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> * Bump @babel/preset-typescript from 7.16.7 to 7.18.6 in /web Bumps [@babel/preset-typescript](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-typescript) from 7.16.7 to 7.18.6. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.18.6/packages/babel-preset-typescript) --- updated-dependencies: - dependency-name: "@babel/preset-typescript" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> * Bump typescript from 4.6.2 to 4.8.4 in /web Bumps [typescript](https://github.com/Microsoft/TypeScript) from 4.6.2 to 4.8.4. - [Release notes](https://github.com/Microsoft/TypeScript/releases) - [Commits](https://github.com/Microsoft/TypeScript/compare/v4.6.2...v4.8.4) --- updated-dependencies: - dependency-name: typescript dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> * Bump @testing-library/user-event from 13.5.0 to 14.4.3 in /web Bumps [@testing-library/user-event](https://github.com/testing-library/user-event) from 13.5.0 to 14.4.3. - [Release notes](https://github.com/testing-library/user-event/releases) - [Changelog](https://github.com/testing-library/user-event/blob/main/CHANGELOG.md) - [Commits](https://github.com/testing-library/user-event/compare/v13.5.0...v14.4.3) --- updated-dependencies: - dependency-name: "@testing-library/user-event" dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> * Bump preact-router from 4.0.1 to 4.1.0 in /web Bumps [preact-router](https://github.com/preactjs/preact-router) from 4.0.1 to 4.1.0. - [Release notes](https://github.com/preactjs/preact-router/releases) - [Commits](https://github.com/preactjs/preact-router/compare/4.0.1...4.1.0) --- updated-dependencies: - dependency-name: preact-router dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> * Bump axios from 0.26.0 to 1.1.3 in /web Bumps [axios](https://github.com/axios/axios) from 0.26.0 to 1.1.3. - [Release notes](https://github.com/axios/axios/releases) - [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md) - [Commits](https://github.com/axios/axios/compare/v0.26.0...v1.1.3) --- updated-dependencies: - dependency-name: axios dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> * Bump @preact/preset-vite from 2.1.7 to 2.4.0 in /web Bumps [@preact/preset-vite](https://github.com/preactjs/preset-vite) from 2.1.7 to 2.4.0. - [Release notes](https://github.com/preactjs/preset-vite/releases) - [Commits](https://github.com/preactjs/preset-vite/compare/v2.1.7...v2.4.0) --- updated-dependencies: - dependency-name: "@preact/preset-vite" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> * Bump @testing-library/jest-dom from 5.16.2 to 5.16.5 in /web Bumps [@testing-library/jest-dom](https://github.com/testing-library/jest-dom) from 5.16.2 to 5.16.5. - [Release notes](https://github.com/testing-library/jest-dom/releases) - [Changelog](https://github.com/testing-library/jest-dom/blob/main/CHANGELOG.md) - [Commits](https://github.com/testing-library/jest-dom/compare/v5.16.2...v5.16.5) --- updated-dependencies: - dependency-name: "@testing-library/jest-dom" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> * revamp frontend * disable broken tests * disable a few more tests * update typescript * couple docs updates Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-13 17:31:36 +01:00
const cameraComponent = config && config.ui?.use_experimental ? Routes.getCameraV2 : Routes.getCamera;
2022-02-26 20:11:00 +01:00
2021-02-02 05:28:25 +01:00
return (
2021-01-31 15:24:04 +01:00
<DarkModeProvider>
<DrawerProvider>
2021-02-14 05:37:22 +01:00
<div data-testid="app" className="w-full">
<AppBar />
2022-02-26 20:11:00 +01:00
{!config ? (
<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 />
2022-02-27 15:04:12 +01:00
<div className="w-full flex-auto mt-16 min-w-0">
<Router>
2021-02-07 22:46:05 +01:00
<AsyncRoute path="/cameras/:camera/editor" getComponent={Routes.getCameraMap} />
2022-02-27 15:04:12 +01:00
<AsyncRoute path="/cameras/:camera" getComponent={cameraComponent} />
2021-06-12 16:55:40 +02:00
<AsyncRoute path="/birdseye" getComponent={Routes.getBirdseye} />
2021-02-07 22:46:05 +01:00
<AsyncRoute path="/events" getComponent={Routes.getEvents} />
2022-05-10 14:48:29 +02:00
<AsyncRoute
path="/recording/:camera/:date?/:hour?/:minute?/:second?"
getComponent={Routes.getRecording}
/>
<AsyncRoute path="/storage" getComponent={Routes.getStorage} />
2022-11-20 15:56:48 +01:00
<AsyncRoute path="/system" getComponent={Routes.getSystem} />
<AsyncRoute path="/config" getComponent={Routes.getConfig} />
<AsyncRoute path="/logs" getComponent={Routes.getLogs} />
2021-02-07 22:46:05 +01:00
<AsyncRoute path="/styleguide" getComponent={Routes.getStyleGuide} />
<Cameras default path="/" />
</Router>
</div>
</div>
)}
</div>
</DrawerProvider>
2021-01-31 15:24:04 +01:00
</DarkModeProvider>
2021-01-09 18:26:46 +01:00
);
}