@@ -79,9 +79,7 @@ const CoveredAreaMap: React.FC<CoveredAreaMapProps> = ({
7979 const [ geoJsonError , setGeoJsonError ] = useState ( false ) ;
8080 const [ geoJsonLoading , setGeoJsonLoading ] = useState ( false ) ;
8181 const [ view , setView ] = useState < MapViews > (
82- feed ?. data_type === 'gtfs'
83- ? 'gtfsVisualizationView'
84- : 'detailedCoveredAreaView' ,
82+ feed ?. data_type === 'gtfs' ? 'gtfsVisualizationView' : 'boundingBoxView' ,
8583 ) ;
8684
8785 const latestGbfsVersion = useSelector ( selectLatestGbfsVersion ) ;
@@ -131,18 +129,30 @@ const CoveredAreaMap: React.FC<CoveredAreaMapProps> = ({
131129 // effect to determine which view to display
132130 useEffect ( ( ) => {
133131 if ( feed == undefined ) return ;
134- if ( feed ?. data_type === 'gbfs' ) return ; // use default for gbfs
132+ if ( feed ?. data_type === 'gbfs' ) {
133+ setView (
134+ config . enableDetailedCoveredArea
135+ ? 'detailedCoveredAreaView'
136+ : 'boundingBoxView' ,
137+ ) ;
138+ return ;
139+ }
135140
136141 // for gtfs feeds
137142 if (
143+ feed ?. data_type === 'gtfs' &&
138144 config . enableGtfsVisualizationMap &&
139145 routesJsonLoadingStatus != 'failed' &&
140146 boundingBox != undefined
141147 ) {
142148 setView ( 'gtfsVisualizationView' ) ;
143149 return ;
144150 }
145- if ( geoJsonData != null && boundingBox != undefined ) {
151+ if (
152+ config . enableDetailedCoveredArea &&
153+ geoJsonData != null &&
154+ boundingBox != undefined
155+ ) {
146156 setView ( 'detailedCoveredAreaView' ) ;
147157 return ;
148158 }
@@ -176,22 +186,13 @@ const CoveredAreaMap: React.FC<CoveredAreaMapProps> = ({
176186
177187 const renderMap = ( ) : JSX . Element => {
178188 const displayBoundingBoxMap =
179- view === 'boundingBoxView' && feed ?. data_type === 'gtfs' ;
189+ view === 'boundingBoxView' &&
190+ ( feed ?. data_type === 'gtfs' ||
191+ ( feed ?. data_type === 'gbfs' && boundingBox != null ) ) ;
180192
181193 const displayGtfsVisualizationView =
182194 view === 'gtfsVisualizationView' && feed ?. data_type === 'gtfs' ;
183195
184- let gbfsBoundingBox : LatLngExpression [ ] = [ ] ;
185- if ( feed ?. data_type === 'gbfs' ) {
186- if ( geoJsonData == null ) {
187- return < > </ > ;
188- }
189- gbfsBoundingBox = computeBoundingBox ( geoJsonData ) ?? [ ] ;
190- if ( gbfsBoundingBox . length === 0 ) {
191- setGeoJsonError ( true ) ;
192- }
193- }
194-
195196 if ( displayBoundingBoxMap ) {
196197 return < Map polygon = { boundingBox ?? [ ] } /> ;
197198 }
@@ -218,11 +219,20 @@ const CoveredAreaMap: React.FC<CoveredAreaMapProps> = ({
218219 </ >
219220 ) ;
220221 }
221- if ( geoJsonData != null ) {
222+ if ( config . enableDetailedCoveredArea && geoJsonData != null ) {
223+ let gbfsGeoJsonBoundingBox : LatLngExpression [ ] = [ ] ;
224+ if ( feed ?. data_type === 'gbfs' ) {
225+ gbfsGeoJsonBoundingBox = computeBoundingBox ( geoJsonData ) ?? [ ] ;
226+ if ( gbfsGeoJsonBoundingBox . length === 0 ) {
227+ setGeoJsonError ( true ) ;
228+ }
229+ }
230+ const feedBoundingBox : LatLngExpression [ ] =
231+ feed ?. data_type === 'gtfs' ? boundingBox ?? [ ] : gbfsGeoJsonBoundingBox ;
222232 return (
223233 < MapGeoJSON
224234 geoJSONData = { geoJsonData }
225- polygon = { boundingBox ?? gbfsBoundingBox }
235+ polygon = { feedBoundingBox }
226236 displayMapDetails = { feed ?. data_type === 'gtfs' }
227237 />
228238 ) ;
@@ -327,17 +337,19 @@ const CoveredAreaMap: React.FC<CoveredAreaMapProps> = ({
327337 </ ToggleButton >
328338 </ Tooltip >
329339 ) }
330- < Tooltip title = { t ( 'detailedCoveredAreaViewTooltip' ) } >
331- < ToggleButton
332- value = 'detailedCoveredAreaView'
333- disabled = {
334- geoJsonLoading || geoJsonError || boundingBox === undefined
335- }
336- aria-label = 'Detailed Covered Area View'
337- >
338- < TravelExploreIcon />
339- </ ToggleButton >
340- </ Tooltip >
340+ { config . enableDetailedCoveredArea && (
341+ < Tooltip title = { t ( 'detailedCoveredAreaViewTooltip' ) } >
342+ < ToggleButton
343+ value = 'detailedCoveredAreaView'
344+ disabled = {
345+ geoJsonLoading || geoJsonError || boundingBox === undefined
346+ }
347+ aria-label = 'Detailed Covered Area View'
348+ >
349+ < TravelExploreIcon />
350+ </ ToggleButton >
351+ </ Tooltip >
352+ ) }
341353 < Tooltip title = { t ( 'boundingBoxViewTooltip' ) } >
342354 < ToggleButton
343355 value = 'boundingBoxView'
@@ -349,17 +361,19 @@ const CoveredAreaMap: React.FC<CoveredAreaMapProps> = ({
349361 </ ToggleButtonGroup >
350362 ) }
351363 </ Box >
352- { feed ?. data_type === 'gtfs' &&
364+ { ( feed ?. data_type === 'gtfs' || feed ?. data_type === 'gbfs' ) &&
353365 boundingBox === undefined &&
354366 view === 'boundingBoxView' && (
355367 < WarningContentBox >
356368 { t ( 'unableToGenerateBoundingBox' ) }
357369 </ WarningContentBox >
358370 ) }
359371
360- { feed ?. data_type === 'gbfs' && geoJsonError && (
361- < WarningContentBox > { t ( 'unableToGetGbfsMap' ) } </ WarningContentBox >
362- ) }
372+ { config . enableDetailedCoveredArea &&
373+ feed ?. data_type === 'gbfs' &&
374+ geoJsonError && (
375+ < WarningContentBox > { t ( 'unableToGetGbfsMap' ) } </ WarningContentBox >
376+ ) }
363377
364378 { ( boundingBox != undefined || ! geoJsonError ) && (
365379 < Box sx = { mapBoxPositionStyle } >
0 commit comments