diff options
author | Anton Tananaev <anton@traccar.org> | 2024-04-06 09:22:10 -0700 |
---|---|---|
committer | Anton Tananaev <anton@traccar.org> | 2024-04-06 09:22:10 -0700 |
commit | f418231b6b2f5e030a0d2dcc390c314602b1f740 (patch) | |
tree | 10326adf3792bc2697e06bb5f2b8ef2a8f7e55fe /modern/src/map/main/MapLiveRoutes.js | |
parent | b392a4af78e01c8e0f50aad5468e9583675b24be (diff) | |
download | trackermap-web-f418231b6b2f5e030a0d2dcc390c314602b1f740.tar.gz trackermap-web-f418231b6b2f5e030a0d2dcc390c314602b1f740.tar.bz2 trackermap-web-f418231b6b2f5e030a0d2dcc390c314602b1f740.zip |
Move modern to the top
Diffstat (limited to 'modern/src/map/main/MapLiveRoutes.js')
-rw-r--r-- | modern/src/map/main/MapLiveRoutes.js | 83 |
1 files changed, 0 insertions, 83 deletions
diff --git a/modern/src/map/main/MapLiveRoutes.js b/modern/src/map/main/MapLiveRoutes.js deleted file mode 100644 index 44cdc6ca..00000000 --- a/modern/src/map/main/MapLiveRoutes.js +++ /dev/null @@ -1,83 +0,0 @@ -import { useId, useEffect } from 'react'; -import { useSelector } from 'react-redux'; -import { useTheme } from '@mui/styles'; -import { map } from '../core/MapView'; -import { useAttributePreference } from '../../common/util/preferences'; - -const MapLiveRoutes = () => { - const id = useId(); - - const theme = useTheme(); - - const type = useAttributePreference('mapLiveRoutes', 'none'); - - const devices = useSelector((state) => state.devices.items); - const selectedDeviceId = useSelector((state) => state.devices.selectedId); - - const history = useSelector((state) => state.session.history); - - useEffect(() => { - if (type !== 'none') { - map.addSource(id, { - type: 'geojson', - data: { - type: 'Feature', - geometry: { - type: 'LineString', - coordinates: [], - }, - }, - }); - map.addLayer({ - source: id, - id, - type: 'line', - layout: { - 'line-join': 'round', - 'line-cap': 'round', - }, - paint: { - 'line-color': ['get', 'color'], - 'line-width': 2, - }, - }); - - return () => { - if (map.getLayer(id)) { - map.removeLayer(id); - } - if (map.getSource(id)) { - map.removeSource(id); - } - }; - } - return () => {}; - }, [type]); - - useEffect(() => { - if (type !== 'none') { - const deviceIds = Object.values(devices) - .map((device) => device.id) - .filter((id) => (type === 'selected' ? id === selectedDeviceId : true)) - .filter((id) => history.hasOwnProperty(id)); - - map.getSource(id)?.setData({ - type: 'FeatureCollection', - features: deviceIds.map((deviceId) => ({ - type: 'Feature', - geometry: { - type: 'LineString', - coordinates: history[deviceId], - }, - properties: { - color: devices[deviceId].attributes['web.reportColor'] || theme.palette.geometry.main, - }, - })), - }); - } - }, [theme, type, devices, selectedDeviceId, history]); - - return null; -}; - -export default MapLiveRoutes; |