/ frontend / containers / Map / Bounds.tsx
Bounds.tsx
 1  import {useEffect, useMemo} from 'react';
 2  import {useMap} from 'react-leaflet';
 3  import useDebounce from '../../hooks/useDebounce';
 4  import useMapStore from '../../stores/useMapStore';
 5  
 6  const Bounds = () => {
 7    const map = useMap();
 8    const {bounds: storedBounds} = useMapStore();
 9    const debouncedBounds = useDebounce(storedBounds, 750);
10    const bounds = useMemo(
11      () => debouncedBounds.map(bound => bound),
12      [debouncedBounds]
13    );
14  
15    useEffect(() => {
16      if (bounds.length >= 1) {
17        map.fitBounds(bounds, {padding: [30, 30]});
18      }
19    }, [bounds]);
20  
21    return null;
22  };
23  
24  export default Bounds;