From 675e5998fccf4034566206697c1cdccf0b31175d Mon Sep 17 00:00:00 2001 From: Ravi Makhija Date: Sun, 6 Oct 2024 17:06:08 +0000 Subject: [PATCH 01/12] Set user location after location fetch --- src/components/ReactGoogleMaps/ReactGoogleMaps.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/components/ReactGoogleMaps/ReactGoogleMaps.js b/src/components/ReactGoogleMaps/ReactGoogleMaps.js index 1dea00f4..134d1682 100644 --- a/src/components/ReactGoogleMaps/ReactGoogleMaps.js +++ b/src/components/ReactGoogleMaps/ReactGoogleMaps.js @@ -239,6 +239,12 @@ export const ReactGoogleMaps = ({ google }) => { const position = await getCoordinates(); setCurrentLat(position.coords.latitude); setCurrentLon(position.coords.longitude); + dispatch( + setUserLocation({ + lat: position.coords.latitude, + lng: position.coords.longitude + }) + ); } catch (error) { // Do nothing } @@ -246,7 +252,7 @@ export const ReactGoogleMaps = ({ google }) => { fetchCoordinates(); }, []); - + //toggle window goes here const onMarkerClick = (resource, markerProps) => { dispatch( From bba54f66b7601c9770a06072ca9010c342a60f72 Mon Sep 17 00:00:00 2001 From: Ravi Makhija Date: Sun, 6 Oct 2024 17:30:40 +0000 Subject: [PATCH 02/12] Newer action syntax for user location, map center --- src/actions/actions.js | 25 +++++++++++-------- .../ReactGoogleMaps/ReactGoogleMaps.js | 6 +++++ src/reducers/filterMarkers.js | 8 +++--- 3 files changed, 24 insertions(+), 15 deletions(-) diff --git a/src/actions/actions.js b/src/actions/actions.js index e8e2d15f..21b91daa 100644 --- a/src/actions/actions.js +++ b/src/actions/actions.js @@ -57,17 +57,20 @@ export const pushNewResource = newResource => ({ // Handles the case where an existing resource is updated from the submission form export const updateExistingResource = createAction('UPDATE_EXISTING_RESOURCE'); -export const SET_USER_LOCATION = 'SET_USER_LOCATION'; -export const setUserLocation = coords => ({ - type: SET_USER_LOCATION, - coords -}); - -export const SET_MAP_CENTER = 'SET_MAP_CENTER'; -export const setMapCenter = coords => ({ - type: SET_MAP_CENTER, - coords -}); +// export const SET_USER_LOCATION = 'SET_USER_LOCATION'; +// export const setUserLocation = coords => ({ +// type: SET_USER_LOCATION, +// coords +// }); + +// export const SET_MAP_CENTER = 'SET_MAP_CENTER'; +// export const setMapCenter = coords => ({ +// type: SET_MAP_CENTER, +// coords +// }); + +export const setUserLocation = createAction('SET_USER_LOCATION'); +export const setMapCenter = createAction('SET_MAP_CENTER'); export const toggleInfoWindow = createAction('TOGGLE_INFO_WINDOW'); export const toggleInfoWindowClass = createAction('TOGGLE_INFO_WINDOW_CLASS'); diff --git a/src/components/ReactGoogleMaps/ReactGoogleMaps.js b/src/components/ReactGoogleMaps/ReactGoogleMaps.js index 134d1682..d02449d7 100644 --- a/src/components/ReactGoogleMaps/ReactGoogleMaps.js +++ b/src/components/ReactGoogleMaps/ReactGoogleMaps.js @@ -245,6 +245,12 @@ export const ReactGoogleMaps = ({ google }) => { lng: position.coords.longitude }) ); + dispatch( + setMapCenter({ + lat: position.coords.latitude, + lng: position.coords.longitude + }) + ) } catch (error) { // Do nothing } diff --git a/src/reducers/filterMarkers.js b/src/reducers/filterMarkers.js index b5700af6..c7b64794 100644 --- a/src/reducers/filterMarkers.js +++ b/src/reducers/filterMarkers.js @@ -72,11 +72,11 @@ export default (state = initialState, act) => { } }; - case actions.SET_USER_LOCATION: - return { ...state, userLocation: act.coords }; + case actions.setUserLocation.type: + return { ...state, userLocation: act.payload }; - case actions.SET_MAP_CENTER: - return { ...state, mapCenter: act.coords }; + case actions.setMapCenter.type: + return { ...state, mapCenter: act.payload }; case actions.getResources.fulfilled.type: return { ...state, allResources: act.payload }; From 0d60090afbff9a595072ebd86c0493c0350cd70d Mon Sep 17 00:00:00 2001 From: Ravi Makhija Date: Sun, 6 Oct 2024 18:54:14 +0000 Subject: [PATCH 03/12] Correct info window class on open --- src/components/SelectedTap/SelectedTap.js | 4 ++-- src/components/Toolbar/Toolbar.js | 16 ++++++++++++---- src/reducers/filterMarkers.js | 2 +- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/components/SelectedTap/SelectedTap.js b/src/components/SelectedTap/SelectedTap.js index 9f08ef55..685bde43 100644 --- a/src/components/SelectedTap/SelectedTap.js +++ b/src/components/SelectedTap/SelectedTap.js @@ -131,8 +131,8 @@ const SelectedTap = () => { toggleInfoWindow({ isShown, infoWindowClass: isMobile - ? 'info-window-out' - : 'info-window-out-desktop' + ? 'info-window-in' + : 'info-window-in-desktop' }) ); } diff --git a/src/components/Toolbar/Toolbar.js b/src/components/Toolbar/Toolbar.js index 820e6a1a..de9ba189 100644 --- a/src/components/Toolbar/Toolbar.js +++ b/src/components/Toolbar/Toolbar.js @@ -110,17 +110,25 @@ function Toolbar({ map }) { lat: userLocation.lat, lon: userLocation.lng }); + + if (!closest) console.log("no closest found!") + if (!closest) return; - dispatch(toggleInfoWindow({ - isShown: true, - infoWindowClass: isMobile ? 'info-window-in' : 'info-window-in-desktop' - })); dispatch(setSelectedPlace(closest)); map.panTo({ lat: closest.latitude, lng: closest.longitude }); + + // maybe, this should be handled somwhere else, as a response to setSelectedPlace + // e.g. is there ever a time where we want to setSelectedPlace, but not open the info? + // maybe some edge cases, but that could probably be handled elsewhere too. (e.g. if the selectedPlace does not exist.) + // dispatch(toggleInfoWindow({ + // isShown: true, + // infoWindowClass: isMobile ? 'info-window-in' : 'info-window-in-desktop' + // })); + } function closestButtonClicked() { diff --git a/src/reducers/filterMarkers.js b/src/reducers/filterMarkers.js index c7b64794..c155245c 100644 --- a/src/reducers/filterMarkers.js +++ b/src/reducers/filterMarkers.js @@ -129,7 +129,7 @@ export default (state = initialState, act) => { : { ...state, selectedPlace: state.allResources[act.selectedPlace], - showingInfoWindow: true + showingInfoWindow: true // debuggin! why is this here, and not in the other branch? }; case actions.toggleInfoWindow.type: From 3c1bc928e92dae80bfed339650e8d1bc56e0e139 Mon Sep 17 00:00:00 2001 From: Ravi Makhija Date: Sun, 6 Oct 2024 21:42:58 +0000 Subject: [PATCH 04/12] Remove old, commented out action syntax --- src/actions/actions.js | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/src/actions/actions.js b/src/actions/actions.js index 21b91daa..97808de3 100644 --- a/src/actions/actions.js +++ b/src/actions/actions.js @@ -57,18 +57,6 @@ export const pushNewResource = newResource => ({ // Handles the case where an existing resource is updated from the submission form export const updateExistingResource = createAction('UPDATE_EXISTING_RESOURCE'); -// export const SET_USER_LOCATION = 'SET_USER_LOCATION'; -// export const setUserLocation = coords => ({ -// type: SET_USER_LOCATION, -// coords -// }); - -// export const SET_MAP_CENTER = 'SET_MAP_CENTER'; -// export const setMapCenter = coords => ({ -// type: SET_MAP_CENTER, -// coords -// }); - export const setUserLocation = createAction('SET_USER_LOCATION'); export const setMapCenter = createAction('SET_MAP_CENTER'); From 30d33bda807cebe617c2d9fedee26f4e2c433538 Mon Sep 17 00:00:00 2001 From: Ravi Makhija Date: Sun, 6 Oct 2024 22:01:26 +0000 Subject: [PATCH 05/12] Fixes a map panning issue from issue #527 This fixes the issue where opening a site, then clicking "Near Me", then closing the info modal was panning back to the prior site, whereas it should have stayed at the "Near Me" site. This is "issue C" as discussed in the comments of GitHub issue #527. --- .../ReactGoogleMaps/ReactGoogleMaps.js | 26 ++++++++++--------- src/components/Toolbar/Toolbar.js | 10 +++++-- 2 files changed, 22 insertions(+), 14 deletions(-) diff --git a/src/components/ReactGoogleMaps/ReactGoogleMaps.js b/src/components/ReactGoogleMaps/ReactGoogleMaps.js index d02449d7..bf72b886 100644 --- a/src/components/ReactGoogleMaps/ReactGoogleMaps.js +++ b/src/components/ReactGoogleMaps/ReactGoogleMaps.js @@ -214,9 +214,6 @@ export const ReactGoogleMaps = ({ google }) => { state => state.filterMarkers.showingInfoWindow ); const toolbarModal = useSelector(state => state.filterMarkers.toolbarModal); - - const [currentLat, setCurrentLat] = useState(CITY_HALL_COORDINATES.latitude); - const [currentLon, setCurrentLon] = useState(CITY_HALL_COORDINATES.longitude); const [zoom, setZoom] = useState(16); const [searchedTap, setSearchedTap] = useState(null); const [map, setMap] = useState(null); @@ -237,8 +234,6 @@ export const ReactGoogleMaps = ({ google }) => { const fetchCoordinates = async () => { try { const position = await getCoordinates(); - setCurrentLat(position.coords.latitude); - setCurrentLon(position.coords.longitude); dispatch( setUserLocation({ lat: position.coords.latitude, @@ -268,10 +263,13 @@ export const ReactGoogleMaps = ({ google }) => { }) ); dispatch(setSelectedPlace(resource)); - setCurrentLat(resource.latitude); - setCurrentLon(resource.longitude); + dispatch( + setMapCenter({ + lat: resource.latitude, + lng: resource.longitude + }) + ) markerProps.map.panTo({ lat: resource.latitude, lng: resource.longitude }); - }; const onReady = (_, map) => { @@ -279,8 +277,12 @@ export const ReactGoogleMaps = ({ google }) => { }; const searchForLocation = location => { - setCurrentLat(location.lat); - setCurrentLon(location.lng); + dispatch( + setMapCenter({ + lat: location.lat, + lng: location.lng + }) + ) setZoom(16); setSearchedTap({ lat: location.lat, lng: location.lng }); }; @@ -351,8 +353,8 @@ export const ReactGoogleMaps = ({ google }) => { fullscreenControl={false} onReady={onReady} center={{ - lat: currentLat, - lng: currentLon + lat: mapCenter.lat, + lng: mapCenter.lng }} filterTags={appliedFilterTags} > diff --git a/src/components/Toolbar/Toolbar.js b/src/components/Toolbar/Toolbar.js index de9ba189..4b2b7e62 100644 --- a/src/components/Toolbar/Toolbar.js +++ b/src/components/Toolbar/Toolbar.js @@ -6,6 +6,7 @@ import { TOOLBAR_MODAL_NONE, TOOLBAR_MODAL_RESOURCE, TOOLBAR_MODAL_SEARCH, + setMapCenter, setSelectedPlace, setToolbarModal, toggleInfoWindow, @@ -111,10 +112,15 @@ function Toolbar({ map }) { lon: userLocation.lng }); - if (!closest) console.log("no closest found!") + // if (!closest) console.log("no closest found!") if (!closest) return; - + dispatch( + setMapCenter({ + lat: closest.latitude, + lng: closest.longitude + }) + ) dispatch(setSelectedPlace(closest)); map.panTo({ lat: closest.latitude, From a2926f56bc98c22fce019cabece83e7c67e3ce27 Mon Sep 17 00:00:00 2001 From: Ravi Makhija Date: Sun, 6 Oct 2024 22:14:24 +0000 Subject: [PATCH 06/12] Rename redux state mapCenter to lastResourcePan The name change reflects the fact that currently as a user may have panned around the map by clicking and dragging the map, the `mapCenter` state was not updated. Instead, the state is updated when e.g. a pin is clicked, or the "Near Me" button is clicked. --- src/actions/actions.js | 2 +- src/components/ReactGoogleMaps/ReactGoogleMaps.js | 14 +++++++------- src/components/Toolbar/Toolbar.js | 4 ++-- src/reducers/filterMarkers.js | 6 +++--- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/actions/actions.js b/src/actions/actions.js index 97808de3..d4754576 100644 --- a/src/actions/actions.js +++ b/src/actions/actions.js @@ -58,7 +58,7 @@ export const pushNewResource = newResource => ({ export const updateExistingResource = createAction('UPDATE_EXISTING_RESOURCE'); export const setUserLocation = createAction('SET_USER_LOCATION'); -export const setMapCenter = createAction('SET_MAP_CENTER'); +export const setLastResourcePan = createAction('SET_LAST_RESOURCE_PAN'); export const toggleInfoWindow = createAction('TOGGLE_INFO_WINDOW'); export const toggleInfoWindowClass = createAction('TOGGLE_INFO_WINDOW_CLASS'); diff --git a/src/components/ReactGoogleMaps/ReactGoogleMaps.js b/src/components/ReactGoogleMaps/ReactGoogleMaps.js index bf72b886..639a143d 100644 --- a/src/components/ReactGoogleMaps/ReactGoogleMaps.js +++ b/src/components/ReactGoogleMaps/ReactGoogleMaps.js @@ -14,7 +14,7 @@ import { resetFilterFunction, setEntryFilterFunction, setFilterFunction, - setMapCenter, + setLastResourcePan, setSelectedPlace, setUserLocation, toggleInfoWindow, @@ -207,7 +207,7 @@ export const ReactGoogleMaps = ({ google }) => { const isMobile = useIsMobile(); const allResources = useSelector(state => state.filterMarkers.allResources); const filteredResources = useSelector(state => selectFilteredResource(state)); - const mapCenter = useSelector(state => state.filterMarkers.mapCenter); + const lastResourcePan = useSelector(state => state.filterMarkers.lastResourcePan); const resourceType = useSelector(state => state.filterMarkers.resourceType); const searchBarMapTintOn = useSelector(state => state.filterMarkers.searchBarMapTintOn); const showingInfoWindow = useSelector( @@ -241,7 +241,7 @@ export const ReactGoogleMaps = ({ google }) => { }) ); dispatch( - setMapCenter({ + setLastResourcePan({ lat: position.coords.latitude, lng: position.coords.longitude }) @@ -264,7 +264,7 @@ export const ReactGoogleMaps = ({ google }) => { ); dispatch(setSelectedPlace(resource)); dispatch( - setMapCenter({ + setLastResourcePan({ lat: resource.latitude, lng: resource.longitude }) @@ -278,7 +278,7 @@ export const ReactGoogleMaps = ({ google }) => { const searchForLocation = location => { dispatch( - setMapCenter({ + setLastResourcePan({ lat: location.lat, lng: location.lng }) @@ -353,8 +353,8 @@ export const ReactGoogleMaps = ({ google }) => { fullscreenControl={false} onReady={onReady} center={{ - lat: mapCenter.lat, - lng: mapCenter.lng + lat: lastResourcePan.lat, + lng: lastResourcePan.lng }} filterTags={appliedFilterTags} > diff --git a/src/components/Toolbar/Toolbar.js b/src/components/Toolbar/Toolbar.js index 4b2b7e62..6ea4d278 100644 --- a/src/components/Toolbar/Toolbar.js +++ b/src/components/Toolbar/Toolbar.js @@ -6,7 +6,7 @@ import { TOOLBAR_MODAL_NONE, TOOLBAR_MODAL_RESOURCE, TOOLBAR_MODAL_SEARCH, - setMapCenter, + setLastResourcePan, setSelectedPlace, setToolbarModal, toggleInfoWindow, @@ -116,7 +116,7 @@ function Toolbar({ map }) { if (!closest) return; dispatch( - setMapCenter({ + setLastResourcePan({ lat: closest.latitude, lng: closest.longitude }) diff --git a/src/reducers/filterMarkers.js b/src/reducers/filterMarkers.js index c155245c..42f7a796 100644 --- a/src/reducers/filterMarkers.js +++ b/src/reducers/filterMarkers.js @@ -3,7 +3,7 @@ import * as actions from '../actions/actions'; import { WATER_RESOURCE_TYPE } from '../types/ResourceEntry'; const initialState = { - mapCenter: { + lastResourcePan: { lat: parseFloat(CITY_HALL_COORDINATES.latitude), lng: parseFloat(CITY_HALL_COORDINATES.longitude) }, @@ -75,8 +75,8 @@ export default (state = initialState, act) => { case actions.setUserLocation.type: return { ...state, userLocation: act.payload }; - case actions.setMapCenter.type: - return { ...state, mapCenter: act.payload }; + case actions.setLastResourcePan.type: + return { ...state, lastResourcePan: act.payload }; case actions.getResources.fulfilled.type: return { ...state, allResources: act.payload }; From c726d191d04b6359a9cbec5f7396e8948f451955 Mon Sep 17 00:00:00 2001 From: Ravi Makhija Date: Sun, 6 Oct 2024 22:21:01 +0000 Subject: [PATCH 07/12] Remove debugging statement --- src/components/Toolbar/Toolbar.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/components/Toolbar/Toolbar.js b/src/components/Toolbar/Toolbar.js index 6ea4d278..bc103755 100644 --- a/src/components/Toolbar/Toolbar.js +++ b/src/components/Toolbar/Toolbar.js @@ -112,8 +112,6 @@ function Toolbar({ map }) { lon: userLocation.lng }); - // if (!closest) console.log("no closest found!") - if (!closest) return; dispatch( setLastResourcePan({ From 2307c52418c8c38e2291bdbe9ad7cdbdd6daf68b Mon Sep 17 00:00:00 2001 From: Ravi Makhija Date: Sun, 6 Oct 2024 22:24:37 +0000 Subject: [PATCH 08/12] Restore original "Near Me" behavior after fix --- src/components/Toolbar/Toolbar.js | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/src/components/Toolbar/Toolbar.js b/src/components/Toolbar/Toolbar.js index bc103755..e7ee49e2 100644 --- a/src/components/Toolbar/Toolbar.js +++ b/src/components/Toolbar/Toolbar.js @@ -111,8 +111,8 @@ function Toolbar({ map }) { lat: userLocation.lat, lon: userLocation.lng }); - if (!closest) return; + dispatch( setLastResourcePan({ lat: closest.latitude, @@ -124,15 +124,10 @@ function Toolbar({ map }) { lat: closest.latitude, lng: closest.longitude }); - - // maybe, this should be handled somwhere else, as a response to setSelectedPlace - // e.g. is there ever a time where we want to setSelectedPlace, but not open the info? - // maybe some edge cases, but that could probably be handled elsewhere too. (e.g. if the selectedPlace does not exist.) - // dispatch(toggleInfoWindow({ - // isShown: true, - // infoWindowClass: isMobile ? 'info-window-in' : 'info-window-in-desktop' - // })); - + dispatch(toggleInfoWindow({ + isShown: true, + infoWindowClass: isMobile ? 'info-window-in' : 'info-window-in-desktop' + })); } function closestButtonClicked() { From 4967a7a4bd820e0471a627195ad4aec6640c21e7 Mon Sep 17 00:00:00 2001 From: Ravi Makhija Date: Sun, 6 Oct 2024 22:31:39 +0000 Subject: [PATCH 09/12] Add some documentation comments --- src/reducers/filterMarkers.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/reducers/filterMarkers.js b/src/reducers/filterMarkers.js index 42f7a796..45cc8ab4 100644 --- a/src/reducers/filterMarkers.js +++ b/src/reducers/filterMarkers.js @@ -3,11 +3,12 @@ import * as actions from '../actions/actions'; import { WATER_RESOURCE_TYPE } from '../types/ResourceEntry'; const initialState = { + // Captures location when e.g. a pin is clicked or "Near Me" is clicked lastResourcePan: { lat: parseFloat(CITY_HALL_COORDINATES.latitude), lng: parseFloat(CITY_HALL_COORDINATES.longitude) }, - // Change to reflect user's current location + // Changes to reflect user's current location if location is enabled userLocation: { lat: parseFloat(CITY_HALL_COORDINATES.latitude), lng: parseFloat(CITY_HALL_COORDINATES.longitude) From 3b0ea6f0cebac9e6700c6def8e899e3c6d7ef9c0 Mon Sep 17 00:00:00 2001 From: Ravi Makhija Date: Tue, 15 Oct 2024 16:38:10 +0000 Subject: [PATCH 10/12] Simplify action - setSelectedPlace Removed unnecessary if-else condition from the reducer, and transitioned to the `createAction` syntax. --- package.json | 5 ++-- src/actions/actions.js | 33 +++++++++++-------------- src/components/Toolbar/Toolbar.js | 16 ++++++------ src/reducers/filterMarkers.js | 41 ++++++++++++++++--------------- 4 files changed, 48 insertions(+), 47 deletions(-) diff --git a/package.json b/package.json index a1e4c4e9..fc5f1b6a 100644 --- a/package.json +++ b/package.json @@ -67,7 +67,7 @@ "storybook": "^7.0.10" }, "scripts": { - "start": "react-scripts start", + "start": "PORT=7000 react-scripts start", "start:cypress": "REACT_APP_CYPRESS_TEST=true react-scripts start", "build": "react-scripts build", "testDataGen": "node cypress/testDataGenerator.js", @@ -111,5 +111,6 @@ "license": "ISC", "bugs": { "url": "https://github.com/phlask/phlask-map/issues" - } + }, + "packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e" } diff --git a/src/actions/actions.js b/src/actions/actions.js index d4754576..5c8b3917 100644 --- a/src/actions/actions.js +++ b/src/actions/actions.js @@ -18,16 +18,17 @@ export const setToggleStateFood = (toggle, toggleState) => ({ toggleState }); -export const setFilterFunction = createAction('SET_FILTER_FUNCTION') +export const setFilterFunction = createAction('SET_FILTER_FUNCTION'); -export const setEntryFilterFunction = createAction('SET_ENTRY_FILTER_FUNCTION') +export const setEntryFilterFunction = createAction('SET_ENTRY_FILTER_FUNCTION'); -export const removeFilterFunction = createAction('REMOVE_FILTER_FUNCTION') +export const removeFilterFunction = createAction('REMOVE_FILTER_FUNCTION'); -export const removeEntryFilterFunction = createAction('REMOVE_ENTRY_FILTER_FUNCTION') - -export const resetFilterFunction = createAction('RESET_FILTER_FUNCTION') +export const removeEntryFilterFunction = createAction( + 'REMOVE_ENTRY_FILTER_FUNCTION' +); +export const resetFilterFunction = createAction('RESET_FILTER_FUNCTION'); export const getResources = createAsyncThunk( 'fetch-resources', @@ -38,12 +39,10 @@ export const getResources = createAsyncThunk( if (process.env.REACT_APP_CYPRESS_TEST) return testData; const snapshot = await get(ref(database, '/')); const results = snapshot.val(); - return Object.entries(results).map( - ([id, resource]) => ({ - ...resource, - id - }) - ); + return Object.entries(results).map(([id, resource]) => ({ + ...resource, + id + })); } ); @@ -79,14 +78,12 @@ export const setFilteredFoodTypes = foodType => ({ foodType }); -export const SET_SELECTED_PLACE = 'SET_SELECTED_PLACE'; -export const setSelectedPlace = selectedPlace => ({ - type: SET_SELECTED_PLACE, - selectedPlace -}); +export const setSelectedPlace = createAction('SET_SELECTED_PLACE'); export const setSearchBarMapTintOn = createAction('SET_SEARCH_BAR_MAP_TINT'); -export const setTapInfoOpenedWhileSearchOpen = createAction('SET_TAP_INFO_OPENED_WHILE_SEARCH_OPEN'); +export const setTapInfoOpenedWhileSearchOpen = createAction( + 'SET_TAP_INFO_OPENED_WHILE_SEARCH_OPEN' +); export const setToolbarModal = createAction('SET_TOOLBAR_MODAL'); export const TOOLBAR_MODAL_NONE = 'TOOLBAR_MODAL_NONE'; diff --git a/src/components/Toolbar/Toolbar.js b/src/components/Toolbar/Toolbar.js index e7ee49e2..67e04969 100644 --- a/src/components/Toolbar/Toolbar.js +++ b/src/components/Toolbar/Toolbar.js @@ -9,7 +9,7 @@ import { setLastResourcePan, setSelectedPlace, setToolbarModal, - toggleInfoWindow, + toggleInfoWindow } from '../../actions/actions'; import styles from './Toolbar.module.scss'; @@ -52,7 +52,7 @@ function distance(lat1, lon1, lat2, lon2) { (Math.cos(lat1 * p) * Math.cos(lat2 * p) * (1 - Math.cos((lon2 - lon1) * p))) / - 2; + 2; return 12742 * Math.asin(Math.sqrt(a)); } @@ -118,16 +118,18 @@ function Toolbar({ map }) { lat: closest.latitude, lng: closest.longitude }) - ) + ); dispatch(setSelectedPlace(closest)); map.panTo({ lat: closest.latitude, lng: closest.longitude }); - dispatch(toggleInfoWindow({ - isShown: true, - infoWindowClass: isMobile ? 'info-window-in' : 'info-window-in-desktop' - })); + dispatch( + toggleInfoWindow({ + isShown: true, + infoWindowClass: isMobile ? 'info-window-in' : 'info-window-in-desktop' + }) + ); } function closestButtonClicked() { diff --git a/src/reducers/filterMarkers.js b/src/reducers/filterMarkers.js index 45cc8ab4..049b44bb 100644 --- a/src/reducers/filterMarkers.js +++ b/src/reducers/filterMarkers.js @@ -17,14 +17,14 @@ const initialState = { infoIsExpanded: false, infoWindowClass: 'info-window-out-desktop', filterTags: [], - filterEntry: "", + filterEntry: '', /** @type {ResourceEntry[]} */ allResources: [], selectedPlace: {}, toolbarModal: actions.TOOLBAR_MODAL_NONE, setSearchBarMapTintOn: false, tapInfoOpenedWhileSearchOpen: false, - resourceType: WATER_RESOURCE_TYPE, + resourceType: WATER_RESOURCE_TYPE }; export default (state = initialState, act) => { @@ -89,22 +89,22 @@ export default (state = initialState, act) => { }; case actions.setFilterFunction.type: - return { ...state, filterTags: [...state.filterTags, act.payload.tag] } + return { ...state, filterTags: [...state.filterTags, act.payload.tag] }; case actions.setEntryFilterFunction.type: - return { ...state, filterEntry: act.payload.tag } + return { ...state, filterEntry: act.payload.tag }; case actions.removeFilterFunction.type: return { ...state, filterTags: state.filterTags.filter(x => x !== act.payload.tag) - } + }; case actions.removeEntryFilterFunction.type: return { ...state, filterEntry: '' - } + }; case actions.resetFilterFunction.type: return { @@ -122,25 +122,26 @@ export default (state = initialState, act) => { ) }; - case actions.SET_SELECTED_PLACE: - // if passed Selected Place as an object, set selected place as the object - // if passed an ID, locate the item using ID, then set selected place - return typeof act.selectedPlace === 'object' - ? { ...state, selectedPlace: act.selectedPlace } - : { - ...state, - selectedPlace: state.allResources[act.selectedPlace], - showingInfoWindow: true // debuggin! why is this here, and not in the other branch? - }; + case actions.setSelectedPlace.type: + return { + ...state, + selectedPlace: act.payload, + showingInfoWindow: true + }; case actions.toggleInfoWindow.type: return { ...state, showingInfoWindow: act.payload.isShown, infoWindowClass: act.payload.infoWindowClass, - searchBarMapTintOn: act.payload.isShown ? false : state.setSearchBarMapTintOn, + searchBarMapTintOn: act.payload.isShown + ? false + : state.setSearchBarMapTintOn, tapInfoOpenedWhileSearchOpen: - act.payload.isShown && (state.toolbarModal === actions.TOOLBAR_MODAL_SEARCH) ? true : false + act.payload.isShown && + state.toolbarModal === actions.TOOLBAR_MODAL_SEARCH + ? true + : false }; case actions.toggleInfoWindowClass.type: @@ -188,10 +189,10 @@ export default (state = initialState, act) => { } case actions.setSearchBarMapTintOn.type: - return { ...state, searchBarMapTintOn: act.payload } + return { ...state, searchBarMapTintOn: act.payload }; case actions.setTapInfoOpenedWhileSearchOpen.type: - return { ...state, tapInfoOpenedWhileSearchOpen: act.payload } + return { ...state, tapInfoOpenedWhileSearchOpen: act.payload }; case actions.setToolbarModal.type: return { ...state, toolbarModal: act.payload }; From d6a8246d0ffe48a4a7637d24da8fbcb8ac8ba6bb Mon Sep 17 00:00:00 2001 From: Ravi Makhija Date: Tue, 15 Oct 2024 17:07:53 +0000 Subject: [PATCH 11/12] Remove temp port change for dev --- cypress/e2e/desktop/.search.cy.js.swp | Bin 0 -> 12288 bytes package.json | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 cypress/e2e/desktop/.search.cy.js.swp diff --git a/cypress/e2e/desktop/.search.cy.js.swp b/cypress/e2e/desktop/.search.cy.js.swp new file mode 100644 index 0000000000000000000000000000000000000000..2eaaea5df2e05499af1b42fb6e6ae6a4c136aeb1 GIT binary patch literal 12288 zcmeI2L2DC16vwBYL~IrH13aU!i6pyiW38z~C{k3gB8GZtq)cXCy3=fS*PYqeAnFHD z@Zim(A3_h(@8CfNPoDe;-hI29LK}K0;zfA_|12~6_RY-iKYLj6dh?I&u0zY67u3!Q z@$Svs_MSK;RxSvU%8}k0%0Zxa%h2mAeRJjP}&utv{L5^br zOn?b60Vco%m;e)C0!-jPAYhXj@sjp&VzL+d>@V8P)OFJ33lm@hOn?b60Vco%m;e)C z0!)AjFaaj;4-$~R5W~|#d?n@o|L=eQ|2!kaXVM<&Bk2RFL;5x+#3#~g(ks#$=_F}} z^lMg#_oTO^%cLKa^ZO+Cmpnf=Ccp%k025#WOn?b60Vco%n84pA@Vs_I0F=J~R5rYg zw(7{uAjSTbcBR?scHP#}((=`Ax8ChGmY1l%aDAb5t@7BZxh9CS(62hUtBrMvQ~;g_ z_hSnZ5={G4vkWq!>Sd_{Fgj8QnnsMthG@VB2$?~M`*3?*CI(cB(&}iNo(^?10ISgl z8<&BJFD-Sc^cfUJ7E@X|K+RR5R)gwfb^ymDGFnk_WTlQwwbGoo0d#DNXz4=fp!z9p>daHHV=&V+1PBFuTN;zAOD{s!9q&<|+(NU7w%_NixgE;gt zZC5%)`8M?96dt09vs4kKhz4EPEr{E3f>j~%73`a}Nmyh Date: Tue, 15 Oct 2024 17:50:49 -0400 Subject: [PATCH 12/12] Small bit of cleanup ahead of merging --- cypress/e2e/desktop/.search.cy.js.swp | Bin 12288 -> 0 bytes package.json | 3 +-- 2 files changed, 1 insertion(+), 2 deletions(-) delete mode 100644 cypress/e2e/desktop/.search.cy.js.swp diff --git a/cypress/e2e/desktop/.search.cy.js.swp b/cypress/e2e/desktop/.search.cy.js.swp deleted file mode 100644 index 2eaaea5df2e05499af1b42fb6e6ae6a4c136aeb1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12288 zcmeI2L2DC16vwBYL~IrH13aU!i6pyiW38z~C{k3gB8GZtq)cXCy3=fS*PYqeAnFHD z@Zim(A3_h(@8CfNPoDe;-hI29LK}K0;zfA_|12~6_RY-iKYLj6dh?I&u0zY67u3!Q z@$Svs_MSK;RxSvU%8}k0%0Zxa%h2mAeRJjP}&utv{L5^br zOn?b60Vco%m;e)C0!-jPAYhXj@sjp&VzL+d>@V8P)OFJ33lm@hOn?b60Vco%m;e)C z0!)AjFaaj;4-$~R5W~|#d?n@o|L=eQ|2!kaXVM<&Bk2RFL;5x+#3#~g(ks#$=_F}} z^lMg#_oTO^%cLKa^ZO+Cmpnf=Ccp%k025#WOn?b60Vco%n84pA@Vs_I0F=J~R5rYg zw(7{uAjSTbcBR?scHP#}((=`Ax8ChGmY1l%aDAb5t@7BZxh9CS(62hUtBrMvQ~;g_ z_hSnZ5={G4vkWq!>Sd_{Fgj8QnnsMthG@VB2$?~M`*3?*CI(cB(&}iNo(^?10ISgl z8<&BJFD-Sc^cfUJ7E@X|K+RR5R)gwfb^ymDGFnk_WTlQwwbGoo0d#DNXz4=fp!z9p>daHHV=&V+1PBFuTN;zAOD{s!9q&<|+(NU7w%_NixgE;gt zZC5%)`8M?96dt09vs4kKhz4EPEr{E3f>j~%73`a}Nmyh