From 8091fd5a60a02f4f6d2e37440945ade6d9af0870 Mon Sep 17 00:00:00 2001 From: Patrick Brady Date: Tue, 30 Jul 2024 19:00:54 -0400 Subject: [PATCH 1/2] getClosest uses filteredResources instead of all resources --- src/components/Toolbar/Toolbar.js | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/src/components/Toolbar/Toolbar.js b/src/components/Toolbar/Toolbar.js index 688c0232..1393ba58 100644 --- a/src/components/Toolbar/Toolbar.js +++ b/src/components/Toolbar/Toolbar.js @@ -41,6 +41,7 @@ import { resourceTypeSelector } from '../../selectors/filterMarkersSelectors'; import ResourceMenu from '../ResourceMenu/ResourceMenu'; import NavigationItem from './NavigationItem'; import useIsMobile from 'hooks/useIsMobile'; +import selectFilteredResource from '../../selectors/waterSelectors'; // Actual Magic: https://stackoverflow.com/a/41337005 // Distance calculates the distance between two lat/lon pairs @@ -88,6 +89,7 @@ function Toolbar({ map }) { const isMobile = useIsMobile(); const resourceType = useSelector(resourceTypeSelector); const allResources = useSelector(state => state.filterMarkers.allResources); + const filteredResources = useSelector(state => selectFilteredResource(state)); const userLocation = useSelector(state => state.filterMarkers.userLocation); const toolbarModal = useSelector(state => state.filterMarkers.toolbarModal); const isResourceMenuShown = useSelector( @@ -109,18 +111,7 @@ function Toolbar({ map }) { // NOTE: This was left as an acceptable scenario for now, // as it is difficult for a user to do this reliably due to the popup of the location panel. // This may be reproducible on Desktop. - let data; - - switch (resourceType) { - case WATER_RESOURCE_TYPE: - data = allResources; - break; - // TODO(vontell): Filter based on requested type - default: - data = allResources; - } - - const closest = getClosest(data, { + const closest = getClosest(filteredResources, { lat: userLocation.lat, lon: userLocation.lng }); From 9097b9aa07ae0db5d3509b32a559c8020d77372b Mon Sep 17 00:00:00 2001 From: Patrick Brady Date: Tue, 30 Jul 2024 20:01:42 -0400 Subject: [PATCH 2/2] follow same pattern as onMarkerClick; TODO: dedupe this logic --- src/components/Toolbar/Toolbar.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/components/Toolbar/Toolbar.js b/src/components/Toolbar/Toolbar.js index 1393ba58..8b6d31ac 100644 --- a/src/components/Toolbar/Toolbar.js +++ b/src/components/Toolbar/Toolbar.js @@ -116,16 +116,16 @@ function Toolbar({ map }) { lon: userLocation.lng }); if (!closest) return; - dispatch(setSelectedPlace(closest)); + dispatch(toggleInfoWindow({ + isShown: true, + infoWindowClass: isMobile ? 'info-window-in' : 'info-window-in-desktop' + })); + dispatch(setSelectedPlace(closest)); map.panTo({ lat: closest.latitude, lng: closest.longitude }); - toggleInfoWindow({ - isShown: true, - infoWindowClass: isMobile ? 'info-window-in' : 'info-window-in-desktop' - }); } function closestButtonClicked() {