blob: d17fb9978e2206a669b9244aa0798f47788ec9b6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
import { useEffect } from 'react';
import { useSelector } from 'react-redux';
import dimensions from '../../common/theme/dimensions';
import { map } from '../core/MapView';
import { usePrevious } from '../../reactHelper';
import { useAttributePreference } from '../../common/util/preferences';
const MapSelectedDevice = () => {
const currentTime = useSelector((state) => state.devices.selectTime);
const currentId = useSelector((state) => state.devices.selectedId);
const previousTime = usePrevious(currentTime);
const previousId = usePrevious(currentId);
const selectZoom = useAttributePreference('web.selectZoom', 10);
const mapFollow = useAttributePreference('mapFollow', false);
const position = useSelector((state) => state.session.positions[currentId]);
useEffect(() => {
if ((currentId !== previousId || currentTime !== previousTime || mapFollow) && position) {
map.easeTo({
center: [position.longitude, position.latitude],
zoom: Math.max(map.getZoom(), selectZoom),
offset: [0, -dimensions.popupMapOffset / 2],
});
}
});
return null;
};
export default MapSelectedDevice;
|