From caece5280cfe073480208e81e5601f263e9fed40 Mon Sep 17 00:00:00 2001 From: miles-grant-ibigroup Date: Wed, 29 May 2024 11:57:47 -0400 Subject: [PATCH] feat: add `map. autoFlyOnTripFormUpdate` config key --- example-config.yml | 1 + lib/components/app/responsive-webapp.js | 24 ++++++++++++++---------- lib/util/config-types.ts | 1 + 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/example-config.yml b/example-config.yml index 6f534b86a..ee1008107 100644 --- a/example-config.yml +++ b/example-config.yml @@ -115,6 +115,7 @@ persistence: map: initLat: 45.52 initLon: -122.682 + # autoFlyOnTripFormUpdate: false baseLayers: - name: Streets # These tiles are free to use, but not in production diff --git a/lib/components/app/responsive-webapp.js b/lib/components/app/responsive-webapp.js index 734ba04b6..dc7d26f72 100644 --- a/lib/components/app/responsive-webapp.js +++ b/lib/components/app/responsive-webapp.js @@ -58,6 +58,7 @@ class ResponsiveWebapp extends Component { componentDidUpdate(prevProps) { const { activeSearchId, + autoFly, currentPosition, formChanged, intl, @@ -99,15 +100,17 @@ class ResponsiveWebapp extends Component { setLocationToCurrent({ locationType: 'from' }, intl) setMapCenter(map, pt) } - } else if (query.from && query.to && mainPanelContent === null) { - map?.fitBounds([query.from, query.to], { - duration: 600, - padding: getFitBoundsPadding(map, 0.2) - }) - } else if (query.from && !query.to) { - setMapCenter(map, query.from) - } else if (query.to && !query.from) { - setMapCenter(map, query.to) + } else if (mainPanelContent === null && autoFly !== false) { + if (query.from && query.to) { + map?.fitBounds([query.from, query.to], { + duration: 600, + padding: getFitBoundsPadding(map, 0.2) + }) + } else if (query.from && !query.to) { + setMapCenter(map, query.from) + } else if (query.to && !query.from) { + setMapCenter(map, query.to) + } } // If the path changes (e.g., via a back button press) check whether the @@ -417,9 +420,10 @@ class RouterWrapperWithAuth0 extends Component { } const mapStateToWrapperProps = (state) => { - const { homeTimezone, persistence, reactRouter } = state.otp.config + const { homeTimezone, map, persistence, reactRouter } = state.otp.config return { auth0Config: getAuth0Config(persistence), + autoFly: map.autoFlyOnTripFormUpdate, defaultLocale: getDefaultLocale(state.otp.config, state.user.loggedInUser), homeTimezone, locale: state.otp.ui.locale, diff --git a/lib/util/config-types.ts b/lib/util/config-types.ts index 89f060b1f..22530305e 100644 --- a/lib/util/config-types.ts +++ b/lib/util/config-types.ts @@ -220,6 +220,7 @@ export type SupportedOverlays = | MapTileLayerConfig export interface MapConfig { + autoFlyOnTripFormUpdate?: boolean baseLayers?: BaseLayerConfig[] initLat?: number initLon?: number