moonfire-nvr/ui/src/Live/index.tsx
Scott Lamb 74b9f36a75 upgrade to @mui v5 release
This requires a bunch of package name changes. See
[https://mui.com/blog/material-ui-is-now-mui/] for their rationale.
[https://mui.com/guides/migration-v4/] lists the changes:

```
@material-ui/core -> @mui/material
@material-ui/system -> @mui/system
@material-ui/unstyled -> @mui/core
@material-ui/styles -> @mui/styles
@material-ui/icons -> @mui/icons-material
@material-ui/lab -> @mui/lab
@material-ui/types -> @mui/types
@material-ui/styled-engine -> @mui/styled-engine
@material-ui/styled-engine-sc ->@mui/styled-engine-sc
@material-ui/private-theming -> @mui/private-theming
@material-ui/codemod -> @mui/codemod
@material-ui/docs -> @mui/docs
@material-ui/envinfo -> @mui/envinfo
```

We only use a few of these.
2021-09-24 10:57:29 -07:00

45 lines
1.3 KiB
TypeScript

// This file is part of Moonfire NVR, a security camera network video recorder.
// Copyright (C) 2021 The Moonfire NVR Authors; see AUTHORS and LICENSE.txt.
// SPDX-License-Identifier: GPL-v3.0-or-later WITH GPL-3.0-linking-exception
import Container from "@mui/material/Container";
import ErrorIcon from "@mui/icons-material/Error";
import { Camera } from "../types";
import LiveCamera from "./LiveCamera";
import Multiview from "./Multiview";
export interface LiveProps {
cameras: Camera[];
layoutIndex: number;
}
const Live = ({ cameras, layoutIndex }: LiveProps) => {
if ("MediaSource" in window === false) {
return (
<Container>
<ErrorIcon
sx={{
float: "left",
color: "secondary.main",
marginRight: "1em",
}}
/>
Live view doesn't work yet on your browser. See{" "}
<a href="https://github.com/scottlamb/moonfire-nvr/issues/121">#121</a>.
</Container>
);
}
return (
<Multiview
layoutIndex={layoutIndex}
cameras={cameras}
renderCamera={(camera: Camera | null, chooser: JSX.Element) => (
<LiveCamera camera={camera} chooser={chooser} />
)}
/>
);
};
export { MultiviewChooser } from "./Multiview";
export default Live;