import React from 'react'; import { useDispatch, useSelector } from 'react-redux'; import { Divider, Typography, IconButton, useMediaQuery, Toolbar, List, ListItem, } from '@mui/material'; import makeStyles from '@mui/styles/makeStyles'; import { useTheme } from '@mui/material/styles'; import Drawer from '@mui/material/Drawer'; import ArrowBackIcon from '@mui/icons-material/ArrowBack'; import { useNavigate } from 'react-router-dom'; import MapView from '../map/core/MapView'; import MapCurrentLocation from '../map/MapCurrentLocation'; import { useTranslation } from '../common/components/LocalizationProvider'; import MapGeocoder from '../map/geocoder/MapGeocoder'; import SelectField from '../common/components/SelectField'; import { devicesActions } from '../store'; import MapPositions from '../map/MapPositions'; import { useCatch } from '../reactHelper'; const useStyles = makeStyles((theme) => ({ root: { height: '100%', display: 'flex', flexDirection: 'column', }, content: { flexGrow: 1, overflow: 'hidden', display: 'flex', flexDirection: 'row', [theme.breakpoints.down('sm')]: { flexDirection: 'column-reverse', }, }, drawer: { zIndex: 1, }, drawerPaper: { position: 'relative', [theme.breakpoints.up('sm')]: { width: theme.dimensions.drawerWidthDesktop, }, [theme.breakpoints.down('sm')]: { height: theme.dimensions.drawerHeightPhone, }, }, mapContainer: { flexGrow: 1, }, title: { flexGrow: 1, }, })); const EmulatorPage = () => { const theme = useTheme(); const classes = useStyles(); const dispatch = useDispatch(); const navigate = useNavigate(); const t = useTranslation(); const isPhone = useMediaQuery(theme.breakpoints.down('sm')); const devices = useSelector((state) => state.devices.items); const deviceId = useSelector((state) => state.devices.selectedId); const positions = useSelector((state) => state.session.positions); const handleClick = useCatch(async (latitude, longitude) => { if (deviceId) { const params = new URLSearchParams(); params.append('id', devices[deviceId].uniqueId); params.append('lat', latitude); params.append('lon', longitude); const response = await fetch(`http://${window.location.hostname}:5055?${params.toString()}`, { method: 'GET', mode: 'no-cors', }); if (!response.ok) { throw Error(await response.text()); } } }); return (