From 2870790d4d1a53af27c41f1591720c38c7c95520 Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Sat, 28 May 2022 08:16:24 -0700 Subject: Show map on selection (fix #948) --- modern/src/main/MainPage.js | 8 ++++++++ modern/src/settings/PreferencesPage.js | 11 ++++++++--- web/l10n/en.json | 1 + 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/modern/src/main/MainPage.js b/modern/src/main/MainPage.js index f9341eb6..41e51609 100644 --- a/modern/src/main/MainPage.js +++ b/modern/src/main/MainPage.js @@ -129,6 +129,8 @@ const MainPage = () => { const desktop = useMediaQuery(theme.breakpoints.up('md')); const phone = useMediaQuery(theme.breakpoints.down('sm')); + const [mapMapOnSelect] = usePersistedState('mapOnSelect', false); + const [mapLiveRoutes] = usePersistedState('mapLiveRoutes', false); const selectedDeviceId = useSelector((state) => state.devices.selectedId); @@ -143,6 +145,12 @@ const MainPage = () => { useEffect(() => setCollapsed(!desktop), [desktop]); + useEffect(() => { + if (!desktop && mapMapOnSelect && selectedDeviceId) { + setCollapsed(true); + } + }, [desktop, mapMapOnSelect, selectedDeviceId]); + const onClick = useCallback((_, deviceId) => { dispatch(devicesActions.select(deviceId)); }, [dispatch]); diff --git a/modern/src/settings/PreferencesPage.js b/modern/src/settings/PreferencesPage.js index 64268e63..0db13aa2 100644 --- a/modern/src/settings/PreferencesPage.js +++ b/modern/src/settings/PreferencesPage.js @@ -48,6 +48,7 @@ const PreferencesPage = () => { const [mapLiveRoutes, setMapLiveRoutes] = usePersistedState('mapLiveRoutes', false); const [mapFollow, setMapFollow] = usePersistedState('mapFollow', false); const [mapCluster, setMapCluster] = usePersistedState('mapCluster', true); + const [mapMapOnSelect, setMapOnSelect] = usePersistedState('mapOnSelect', false); const alarms = useTranslationKeys((it) => it.startsWith('alarm')).map((it) => ({ key: unprefixString('alarm', it), @@ -101,17 +102,21 @@ const PreferencesPage = () => { setMapLiveRoutes(event.target.checked)} />} + control={ setMapLiveRoutes(e.target.checked)} />} label={t('mapLiveRoutes')} /> setMapFollow(event.target.checked)} />} + control={ setMapFollow(e.target.checked)} />} label={t('deviceFollow')} /> setMapCluster(event.target.checked)} />} + control={ setMapCluster(e.target.checked)} />} label={t('mapClustering')} /> + setMapOnSelect(e.target.checked)} />} + label={t('mapOnSelect')} + /> diff --git a/web/l10n/en.json b/web/l10n/en.json index 65ae7ce9..4e6ccabf 100644 --- a/web/l10n/en.json +++ b/web/l10n/en.json @@ -279,6 +279,7 @@ "mapCurrentLocation": "Current Location", "mapPoiLayer": "POI Layer", "mapClustering": "Markers Clustering", + "mapOnSelect": "Show Map on Selection", "stateTitle": "State", "stateName": "Attribute", "stateValue": "Value", -- cgit v1.2.3