Spaces:
Runtime error
Runtime error
Commit
·
04b006b
1
Parent(s):
7e40962
Make the distance in geoDistance feature change when distance unit is changed
Browse filesEarlier, if i opted for distance between two points, and then changed the distance unit, the actual numerical distance didn't change. Added a useEffect to geoHandleClick, so that it fetches the api yet again, when distance unit is changed.
frontend/src/components/Map.js
CHANGED
@@ -204,6 +204,33 @@ const Map = ( { onMapClick, searchQuery, contentType } ) => {
|
|
204 |
}
|
205 |
}, [geoPoints, geoUnit]);
|
206 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
207 |
return (
|
208 |
<div ref={containerRef} style={{ display: 'flex', height: '100vh', width: '100%', overflow: 'hidden' }}>
|
209 |
{panelSize !== 'closed' && (
|
|
|
204 |
}
|
205 |
}, [geoPoints, geoUnit]);
|
206 |
|
207 |
+
useEffect(() => {
|
208 |
+
if (geoPoints.length === 2) {
|
209 |
+
const fetchDistance = async () => {
|
210 |
+
try{
|
211 |
+
const res = await fetch(`${BACKEND_URL}/geodistance`, {
|
212 |
+
method: 'POST',
|
213 |
+
headers: { 'Content-Type': 'application/json' },
|
214 |
+
body: JSON.stringify({
|
215 |
+
lat1: geoPoints[0].lat,
|
216 |
+
lon1: geoPoints[0].lon,
|
217 |
+
lat2: geoPoints[1].lat,
|
218 |
+
lon2: geoPoints[1].lon,
|
219 |
+
unit: geoUnit
|
220 |
+
}),
|
221 |
+
});
|
222 |
+
const data = await res.json();
|
223 |
+
setGeoDistance(data.distance);
|
224 |
+
}
|
225 |
+
catch (err) {
|
226 |
+
console.error('Failed to fetch distance:', err);
|
227 |
+
setGeoDistance(null);
|
228 |
+
}
|
229 |
+
};
|
230 |
+
fetchDistance();
|
231 |
+
}
|
232 |
+
}, [geoPoints, geoUnit]);
|
233 |
+
|
234 |
return (
|
235 |
<div ref={containerRef} style={{ display: 'flex', height: '100vh', width: '100%', overflow: 'hidden' }}>
|
236 |
{panelSize !== 'closed' && (
|