diff --git a/src/components/dashboard/roadMissions/operator/Actions/Create/Form/Area/Routing/ShowRoute.jsx b/src/components/dashboard/roadMissions/operator/Actions/Create/Form/Area/Routing/ShowRoute.jsx index 7d47ba8..b05cc6a 100644 --- a/src/components/dashboard/roadMissions/operator/Actions/Create/Form/Area/Routing/ShowRoute.jsx +++ b/src/components/dashboard/roadMissions/operator/Actions/Create/Form/Area/Routing/ShowRoute.jsx @@ -1,4 +1,4 @@ -import { useEffect, useRef } from "react"; +import { useEffect, useRef, useState } from "react"; import { Marker, Polyline, useMap } from "react-leaflet"; import L from "leaflet"; import polyline from "@mapbox/polyline"; @@ -18,14 +18,24 @@ const ShowRoute = ({ area }) => { }); }; - useEffect(() => { - if (coords.length > 0) { - map.flyToBounds(coords, { padding: [50, 50], duration: 1.5 }); - } - }, [area]); const sourceIcon = createCustomIcon(defaultIconSize, SourceIcon.src); const destIcon = createCustomIcon(defaultIconSize, DestIcon.src); + const [showRoute, setShowRoute] = useState(false); + useEffect(() => { + if (!coords.length) return; + + setShowRoute(false); + + map.flyToBounds(coords, { + padding: [50, 50], + duration: 1.5, + }); + + map.once("moveend", () => { + setShowRoute(true); + }); + }, [area]); if (!area) return null; const coords = polyline.decode(area, 6); @@ -36,7 +46,8 @@ const ShowRoute = ({ area }) => { return ( <> - + {showRoute && } + diff --git a/src/components/dashboard/roadMissions/transportation/RowActions/RouteDetail/ShowRoute.jsx b/src/components/dashboard/roadMissions/transportation/RowActions/RouteDetail/ShowRoute.jsx index 7d47ba8..3998a2f 100644 --- a/src/components/dashboard/roadMissions/transportation/RowActions/RouteDetail/ShowRoute.jsx +++ b/src/components/dashboard/roadMissions/transportation/RowActions/RouteDetail/ShowRoute.jsx @@ -1,4 +1,4 @@ -import { useEffect, useRef } from "react"; +import { useEffect, useRef, useState } from "react"; import { Marker, Polyline, useMap } from "react-leaflet"; import L from "leaflet"; import polyline from "@mapbox/polyline"; @@ -18,14 +18,24 @@ const ShowRoute = ({ area }) => { }); }; - useEffect(() => { - if (coords.length > 0) { - map.flyToBounds(coords, { padding: [50, 50], duration: 1.5 }); - } - }, [area]); const sourceIcon = createCustomIcon(defaultIconSize, SourceIcon.src); const destIcon = createCustomIcon(defaultIconSize, DestIcon.src); + const [showRoute, setShowRoute] = useState(false); + useEffect(() => { + if (!coords.length) return; + + setShowRoute(false); + + map.flyToBounds(coords, { + padding: [50, 50], + duration: 1.5, + }); + + map.once("moveend", () => { + setShowRoute(true); + }); + }, [area]); if (!area) return null; const coords = polyline.decode(area, 6); @@ -34,9 +44,11 @@ const ShowRoute = ({ area }) => { const sourcePosition = coords[0]; const destPosition = coords[coords.length - 1]; + return ( <> - + {showRoute && } +