import React, { useState } from "react";
import { useHistory } from "react-router-dom";
import { makeStyles } from "@material-ui/core/styles";
import { useDispatch, useSelector } from "react-redux";
import { sessionActions } from "./store";
import AppBar from "@material-ui/core/AppBar";
import Toolbar from "@material-ui/core/Toolbar";
import Typography from "@material-ui/core/Typography";
import Button from "@material-ui/core/Button";
import IconButton from "@material-ui/core/IconButton";
import MenuIcon from "@material-ui/icons/Menu";
import Drawer from "@material-ui/core/Drawer";
import List from "@material-ui/core/List";
import ListSubheader from "@material-ui/core/ListSubheader";
import Divider from "@material-ui/core/Divider";
import ListItem from "@material-ui/core/ListItem";
import ListItemIcon from "@material-ui/core/ListItemIcon";
import ListItemText from "@material-ui/core/ListItemText";
import MapIcon from "@material-ui/icons/Map";
import BarChartIcon from "@material-ui/icons/BarChart";
import PeopleIcon from "@material-ui/icons/People";
import StorageIcon from "@material-ui/icons/Storage";
import PersonIcon from "@material-ui/icons/Person";
import NotificationsIcon from "@material-ui/icons/Notifications";
import TimelineIcon from "@material-ui/icons/Timeline";
import PauseCircleFilledIcon from "@material-ui/icons/PauseCircleFilled";
import PlayCircleFilledIcon from "@material-ui/icons/PlayCircleFilled";
import NotificationsActiveIcon from "@material-ui/icons/NotificationsActive";
import FormatListBulletedIcon from "@material-ui/icons/FormatListBulleted";
import TrendingUpIcon from "@material-ui/icons/TrendingUp";
import FolderIcon from "@material-ui/icons/Folder";
import t from "./common/localization";
const useStyles = makeStyles((theme) => ({
flex: {
flexGrow: 1,
},
appBar: {
zIndex: theme.zIndex.drawer + 1,
},
list: {
width: 250,
},
menuButton: {
marginLeft: -12,
marginRight: 20,
},
}));
const MainToolbar = () => {
const dispatch = useDispatch();
const [drawer, setDrawer] = useState(false);
const classes = useStyles();
const history = useHistory();
const adminEnabled = useSelector(
(state) => state.session.user && state.session.user.administrator
);
const userId = useSelector(
(state) => state.session.user && state.session.user.id
);
const openDrawer = () => {
setDrawer(true);
};
const closeDrawer = () => {
setDrawer(false);
};
const handleLogout = async () => {
const response = await fetch("/api/session", { method: "DELETE" });
if (response.ok) {
dispatch(sessionActions.updateUser(null));
history.push("/login");
}
};
return (
<>
Traccar
history.push("/")}>
{t("reportTitle")}}>
history.push("/reports/route")}>
history.push("/reports/event")}>
{t("settingsTitle")}}>
history.push(`/user/${userId}`)}
>
history.push("/settings/notifications")}
>
history.push("/settings/groups")}>
{adminEnabled && (
<>
{t("userAdmin")}}>
history.push("/admin/server")}>
history.push("/admin/users")}>
>
)}
>
);
};
export default MainToolbar;