commit f7de119be91599da91a3c9ef7e0bf2ba29a4c2f5
parent 1a9b96ba15222f9ec2246587506965406a2179ea
Author: Sergej Orlov <wladimirych@gmail.com>
Date: Tue, 3 Dec 2019 12:14:54 +0100
lint: fix "Possible race condition" errors
Diffstat:
2 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/src/lib/leaflet.control.panoramas/index.js b/src/lib/leaflet.control.panoramas/index.js
@@ -218,7 +218,7 @@ L.Control.Panoramas = L.Control.extend({
}
L.DomUtil.addClass(provider.container, 'enabled');
if (!provider.viewer) {
- provider.viewer = await provider.provider.getViewer(provider.container);
+ provider.viewer = await provider.provider.getViewer(provider.container); // eslint-disable-line require-atomic-updates
this.setupViewerEvents(provider);
}
if (data) {
diff --git a/src/lib/leaflet.control.panoramas/lib/wikimedia/index.js b/src/lib/leaflet.control.panoramas/lib/wikimedia/index.js
@@ -97,6 +97,8 @@ function isCloser(target, a, b) {
}
async function getPanoramaAtPos(latlng, searchRadiusMeters) {
+ latlng = L.latLng(latlng.lat, latlng.lng); // make independent copy
+
const clusterSize = 10;
const urlTemplate = 'https://commons.wikimedia.org/w/api.php?' +
'origin=*&format=json&action=query&generator=geosearch&' +
@@ -117,10 +119,9 @@ async function getPanoramaAtPos(latlng, searchRadiusMeters) {
if (resp.status === 200) {
let photos = parseSearchResponse(resp.responseJSON);
if (photos) {
- latlng = L.latLng(latlng.lat, latlng.lng);
photos.sort(isCloser.bind(null, latlng));
- latlng = L.latLng(photos[0].lat, photos[0].lng);
- photos = photos.filter((photo) => latlng.distanceTo(L.latLng(photo.lat, photo.lng)) <= clusterSize, latlng);
+ const nearestLatlng = L.latLng(photos[0].lat, photos[0].lng);
+ photos = photos.filter((photo) => nearestLatlng.distanceTo(L.latLng(photo.lat, photo.lng)) <= clusterSize);
return {
found: true,
data: photos