@@ -14,18 +14,21 @@ import { ErrorEvent, Map, MapRef } from 'react-map-gl/maplibre';
1414import { useLocation , useParams } from 'react-router-dom' ;
1515import { RouteParameters } from 'types' ;
1616import {
17+ filterCarbonIntensity ,
1718 getCarbonIntensity ,
1819 useNavigateWithParameters ,
1920 useUserLocation ,
2021} from 'utils/helpers' ;
2122import {
23+ co2IntensityRangeAtom ,
2224 isConsumptionAtom ,
2325 selectedDatetimeStringAtom ,
2426 spatialAggregateAtom ,
2527 userLocationAtom ,
2628} from 'utils/state/atoms' ;
2729
2830import { useCo2ColorScale , useTheme } from '../../hooks/theme' ;
31+ import { useFeatureFlag } from '../feature-flags/api' ;
2932import BackgroundLayer from './map-layers/BackgroundLayer' ;
3033import StatesLayer from './map-layers/StatesLayer' ;
3134import ZonesLayer from './map-layers/ZonesLayer' ;
@@ -63,6 +66,7 @@ interface ExtendedWindow extends Window {
6366// We could even consider not changing it hear, but always reading it from the path parameter?
6467export default function MapPage ( { onMapLoad } : MapPageProps ) : ReactElement {
6568 const setIsMoving = useSetAtom ( mapMovingAtom ) ;
69+ const co2IntensityRange = useAtomValue ( co2IntensityRangeAtom ) ;
6670 const setMousePosition = useSetAtom ( mousePositionAtom ) ;
6771 const [ isLoadingMap , setIsLoadingMap ] = useAtom ( loadingMapAtom ) ;
6872 const [ hoveredZone , setHoveredZone ] = useAtom ( hoveredZoneAtom ) ;
@@ -90,6 +94,9 @@ export default function MapPage({ onMapLoad }: MapPageProps): ReactElement {
9094 const onMapReferenceChange = useCallback ( ( reference : MapRef ) => {
9195 setMapReference ( reference ) ;
9296 } , [ ] ) ;
97+ const isCo2IntensityFilteringFeatureEnabled = useFeatureFlag (
98+ 'legend-co2-intensity-filtering'
99+ ) ;
93100
94101 useEffect ( ( ) => {
95102 let subscription : PluginListenerHandle | null = null ;
@@ -181,7 +188,16 @@ export default function MapPage({ onMapLoad }: MapPageProps): ReactElement {
181188 for ( const feature of worldGeometries . features ) {
182189 const { zoneId } = feature . properties ;
183190 const zone = data ?. datetimes [ selectedDatetimeString ] ?. z [ zoneId ] ;
184- const co2intensity = zone ? getCarbonIntensity ( zone , isConsumption ) : undefined ;
191+
192+ let co2intensity = zone ? getCarbonIntensity ( zone , isConsumption ) : undefined ;
193+
194+ co2intensity = filterCarbonIntensity (
195+ isCo2IntensityFilteringFeatureEnabled ,
196+ co2intensity ,
197+ co2IntensityRange [ 0 ] ,
198+ co2IntensityRange [ 1 ]
199+ ) ;
200+
185201 const fillColor = co2intensity
186202 ? getCo2colorScale ( co2intensity )
187203 : theme . clickableFill ;
@@ -216,6 +232,8 @@ export default function MapPage({ onMapLoad }: MapPageProps): ReactElement {
216232 theme . clickableFill ,
217233 selectedDatetimeString ,
218234 isConsumption ,
235+ co2IntensityRange ,
236+ isCo2IntensityFilteringFeatureEnabled ,
219237 ] ) ;
220238
221239 useEffect ( ( ) => {
0 commit comments