feat(map): stop flyTo/panTo on champ carte by default
This commit is contained in:
parent
32dcb411ca
commit
53ae5eeb5b
2 changed files with 14 additions and 2 deletions
|
@ -6,6 +6,7 @@ import type { FeatureCollection } from 'geojson';
|
|||
import { useMapLibre } from '../../shared/maplibre/MapLibre';
|
||||
import {
|
||||
useFitBounds,
|
||||
useFitBoundsNoFly,
|
||||
useEvent,
|
||||
useMapEvent,
|
||||
useFlyTo
|
||||
|
@ -117,6 +118,7 @@ function useExternalEvents(
|
|||
}
|
||||
) {
|
||||
const fitBounds = useFitBounds();
|
||||
const fitBoundsNoFly = useFitBoundsNoFly();
|
||||
const flyTo = useFlyTo();
|
||||
|
||||
const onFeatureFocus = useCallback(
|
||||
|
@ -184,10 +186,10 @@ function useExternalEvents(
|
|||
);
|
||||
|
||||
useEffect(() => {
|
||||
fitBounds(featureCollection.bbox as LngLatBoundsLike);
|
||||
fitBoundsNoFly(featureCollection.bbox as LngLatBoundsLike);
|
||||
// We only want to zoom on bbox on component mount.
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
}, [fitBounds]);
|
||||
}, [fitBoundsNoFly]);
|
||||
|
||||
useEvent('map:feature:focus', onFeatureFocus);
|
||||
useEvent('map:feature:create', onFeatureCreate);
|
||||
|
|
|
@ -26,6 +26,16 @@ export function useFitBounds() {
|
|||
);
|
||||
}
|
||||
|
||||
export function useFitBoundsNoFly() {
|
||||
const map = useMapLibre();
|
||||
return useCallback(
|
||||
(bbox: LngLatBoundsLike) => {
|
||||
map.fitBounds(bbox, { padding: 100, linear: true, duration: 0 });
|
||||
},
|
||||
[map]
|
||||
);
|
||||
}
|
||||
|
||||
export function useFlyTo() {
|
||||
const map = useMapLibre();
|
||||
return useCallback(
|
||||
|
|
Loading…
Reference in a new issue