import React, {
useState, useEffect, useRef, useCallback,
} from 'react';
import {
Grid, IconButton, makeStyles, Paper, Slider, Toolbar, Tooltip, Typography,
} from '@material-ui/core';
import ArrowBackIcon from '@material-ui/icons/ArrowBack';
import SettingsIcon from '@material-ui/icons/Settings';
import PlayArrowIcon from '@material-ui/icons/PlayArrow';
import PauseIcon from '@material-ui/icons/Pause';
import FastForwardIcon from '@material-ui/icons/FastForward';
import FastRewindIcon from '@material-ui/icons/FastRewind';
import { useHistory } from 'react-router-dom';
import { useSelector } from 'react-redux';
import Map from '../map/core/Map';
import ReplayPathMap from '../map/ReplayPathMap';
import PositionsMap from '../map/PositionsMap';
import { formatTime } from '../common/util/formatter';
import ReportFilter from '../reports/components/ReportFilter';
import { useTranslation } from '../common/components/LocalizationProvider';
import { useCatch } from '../reactHelper';
const useStyles = makeStyles((theme) => ({
root: {
height: '100%',
},
sidebar: {
display: 'flex',
flexDirection: 'column',
position: 'absolute',
zIndex: 3,
left: 0,
top: 0,
margin: theme.spacing(1.5),
width: theme.dimensions.drawerWidthDesktop,
[theme.breakpoints.down('sm')]: {
width: '100%',
margin: 0,
},
},
title: {
flexGrow: 1,
},
slider: {
width: '100%',
},
controls: {
display: 'flex',
justifyContent: 'space-between',
alignItems: 'center',
},
formControlLabel: {
height: '100%',
width: '100%',
paddingRight: theme.spacing(1),
justifyContent: 'space-between',
alignItems: 'center',
},
content: {
display: 'flex',
flexDirection: 'column',
padding: theme.spacing(2),
[theme.breakpoints.down('sm')]: {
margin: theme.spacing(1),
},
[theme.breakpoints.up('md')]: {
marginTop: theme.spacing(1),
},
},
}));
const TimeLabel = ({ children, open, value }) => (