Skip to content

Commit b31e77e

Browse files
committed
Rewrite ClimateMap in a more sensible way to comply with Super Linter v7's needs
1 parent 62ccad2 commit b31e77e

File tree

1 file changed

+28
-29
lines changed

1 file changed

+28
-29
lines changed

frontend/src/component/Mapper/ClimateMap.tsx

Lines changed: 28 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -83,9 +83,13 @@ const ClimateMap = observer(({ onMount = () => true }: ClimateMapProps) => {
8383
currentMonth: userStore.currentMonth,
8484
selectedOptimism: userStore.selectedOptimism,
8585
});
86+
const mapViewportBounds = mapDataStore.mapViewportBounds;
87+
const dataResolution = mapDataStore.dataResolution;
88+
const rawRegionTemperatureData =
89+
temperatureDataStore.rawRegionTemperatureData;
90+
const rawRegionTemperatureDataLength = rawRegionTemperatureData.length;
8691

8792
// Set theme to purple
88-
// eslint-disable-next-line react-hooks/exhaustive-deps
8993
useEffect(() => {
9094
document.documentElement.setAttribute("data-theme", "purple");
9195
}, []);
@@ -95,7 +99,7 @@ const ClimateMap = observer(({ onMount = () => true }: ClimateMapProps) => {
9599
useEffect(() => {
96100
const loadData = async () => {
97101
// Avoid global requests before viewport is known in grid mode
98-
if (userStore.mapMode === "grid" && !mapDataStore.mapViewportBounds) {
102+
if (userStore.mapMode === "grid" && !mapViewportBounds) {
99103
console.log("Skipping grid data load until viewport is available");
100104
return;
101105
}
@@ -104,11 +108,11 @@ const ClimateMap = observer(({ onMount = () => true }: ClimateMapProps) => {
104108
console.log(`Loading lat/lon data for ${userStore.mapMode} mode`);
105109
console.log(
106110
"🗺️ Current mapViewportBounds when loading data:",
107-
mapDataStore.mapViewportBounds,
111+
mapViewportBounds,
108112
);
109113

110114
// Use current viewport bounds for data fetching
111-
const viewportBoundsToUse = mapDataStore.mapViewportBounds;
115+
const viewportBoundsToUse = mapViewportBounds;
112116
console.log("🔄 Using viewport bounds:", viewportBoundsToUse);
113117

114118
await temperatureDataStore.loadTemperatureData(
@@ -124,7 +128,7 @@ const ClimateMap = observer(({ onMount = () => true }: ClimateMapProps) => {
124128
mapDataStore.setIsLoadingRawData,
125129
setGeneralError,
126130
viewportBoundsToUse,
127-
mapDataStore.dataResolution,
131+
dataResolution,
128132
);
129133
}
130134

@@ -146,8 +150,8 @@ const ClimateMap = observer(({ onMount = () => true }: ClimateMapProps) => {
146150
setNoDataModalVisible,
147151
setDataFetchErrorMessage,
148152
setGeneralError,
149-
mapDataStore.mapViewportBounds,
150-
mapDataStore.dataResolution,
153+
mapViewportBounds,
154+
dataResolution,
151155
]);
152156

153157
// Handle popup close button clicks
@@ -318,9 +322,9 @@ const ClimateMap = observer(({ onMount = () => true }: ClimateMapProps) => {
318322
useEffect(() => {
319323
console.log("GRID-PROBLEM-DEBUG effect: processData start", {
320324
mapMode: userStore.mapMode,
321-
rawLen: temperatureDataStore.rawRegionTemperatureData.length,
322-
hasViewport: !!mapDataStore.mapViewportBounds,
323-
dataResolution: mapDataStore.dataResolution,
325+
rawLen: rawRegionTemperatureDataLength,
326+
hasViewport: !!mapViewportBounds,
327+
dataResolution,
324328
dataProcessingError,
325329
});
326330
// Skip processing if there's already a processing error or in Europe mode
@@ -333,7 +337,7 @@ const ClimateMap = observer(({ onMount = () => true }: ClimateMapProps) => {
333337
return;
334338
}
335339

336-
const rawDataLength = temperatureDataStore.rawRegionTemperatureData.length;
340+
const rawDataLength = rawRegionTemperatureDataLength;
337341
console.log("GRID-PROBLEM-DEBUG effect: rawDataLength", rawDataLength);
338342

339343
const processData = async () => {
@@ -354,7 +358,7 @@ const ClimateMap = observer(({ onMount = () => true }: ClimateMapProps) => {
354358
mapDataStore.setIsProcessingWorldwideRegionData(true);
355359
const { processedGeoJSON, extremes } =
356360
await regionProcessor.processWorldwideRegions(
357-
temperatureDataStore.rawRegionTemperatureData,
361+
rawRegionTemperatureData,
358362
temperatureDataStore.worldwideRegionBoundaries,
359363
);
360364
mapDataStore.setProcessedWorldwideRegions(processedGeoJSON);
@@ -372,20 +376,15 @@ const ClimateMap = observer(({ onMount = () => true }: ClimateMapProps) => {
372376
const gridBuildRequestId = ++latestGridBuildRequestRef.current;
373377
console.log("GRID-PROBLEM-DEBUG grid branch entry", {
374378
rawDataLength,
375-
viewport: mapDataStore.mapViewportBounds,
376-
resolution: mapDataStore.dataResolution,
379+
viewport: mapViewportBounds,
380+
resolution: dataResolution,
377381
});
378382
console.log("Grid processing check:", userStore.mapMode, rawDataLength);
379-
console.log(
380-
"mapDataStore.mapViewportBounds:",
381-
mapDataStore.mapViewportBounds,
382-
);
383-
console.log("dataResolution:", mapDataStore.dataResolution);
383+
console.log("mapDataStore.mapViewportBounds:", mapViewportBounds);
384+
console.log("dataResolution:", dataResolution);
384385

385386
// Grid mode: set extremes from raw temperature data and generate grid cells
386-
const temps = temperatureDataStore.rawRegionTemperatureData.map(
387-
(d) => d.temperature,
388-
);
387+
const temps = rawRegionTemperatureData.map((d) => d.temperature);
389388
const extremes = {
390389
min: Math.min(...temps),
391390
max: Math.max(...temps),
@@ -394,15 +393,15 @@ const ClimateMap = observer(({ onMount = () => true }: ClimateMapProps) => {
394393

395394
// Generate grid cells using MobX store
396395
console.log("About to call generateGridCellsFromTemperatureData");
397-
const viewportBounds = mapDataStore.mapViewportBounds;
398-
const resolution = mapDataStore.dataResolution;
396+
const viewportBounds = mapViewportBounds;
397+
const resolution = dataResolution;
399398
console.log("GRID-PROBLEM-DEBUG before gridProcessingStore.generate", {
400399
viewportBounds,
401400
resolution,
402401
});
403402
const nextGridCells =
404403
gridProcessingStore.generateGridCellsFromTemperatureData(
405-
temperatureDataStore.rawRegionTemperatureData,
404+
rawRegionTemperatureData,
406405
viewportBounds,
407406
resolution,
408407
);
@@ -443,10 +442,10 @@ const ClimateMap = observer(({ onMount = () => true }: ClimateMapProps) => {
443442
dataProcessingError,
444443
setDataProcessingError,
445444
setGeneralError,
446-
temperatureDataStore.rawRegionTemperatureData,
447-
temperatureDataStore.rawRegionTemperatureData.length,
448-
mapDataStore.mapViewportBounds,
449-
mapDataStore.dataResolution,
445+
rawRegionTemperatureData,
446+
rawRegionTemperatureDataLength,
447+
mapViewportBounds,
448+
dataResolution,
450449
]);
451450

452451
// Cleanup timeouts on unmount

0 commit comments

Comments
 (0)