Skip to content

Commit a472e61

Browse files
authored
Merge pull request #39 from Uni-of-Exeter/add-averages-loading-tracker
fix: include climate averages in graph data loading state
2 parents a11ece8 + 71675ea commit a472e61

File tree

3 files changed

+12
-3
lines changed

3 files changed

+12
-3
lines changed

client/src/App.jsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ const App = () => {
4646
const [year] = useState(defaultState.year);
4747
const [variable, setVariable] = useState(defaultState.variable);
4848
const [isPredictionLoading, setIsPredictionLoading] = useState(defaultState.isPredictionLoading);
49+
const [areAveragesLoading, setAreAveragesLoading] = useState(defaultState.areAveragesLoading);
4950
const [selectedHazardName, setSelectedHazardName] = useState(defaultState.selectedHazardName);
5051
const [applyCoastalFilter, setApplyCoastalFilter] = useState(defaultState.applyCoastalFilter);
5152

@@ -83,6 +84,7 @@ const App = () => {
8384
season={season}
8485
variable={variable}
8586
setClimateAverages={setClimateAverages}
87+
setAreAveragesLoading={setAreAveragesLoading}
8688
/>
8789

8890
<ClimateAverageRangesLoader
@@ -123,7 +125,7 @@ const App = () => {
123125
setSeason={setSeason}
124126
setRcp={setRcp}
125127
climatePrediction={climatePrediction}
126-
loading={isPredictionLoading}
128+
loading={isPredictionLoading || areAveragesLoading}
127129
climateAverages={climateAverages}
128130
climateAverageRanges={climateAverageRanges}
129131
variable={variable}

client/src/components/loaders/ClimateAveragesLoader.jsx

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,12 @@ Common Good Public License Beta 1.0 for more details. */
1010

1111
import { useEffect } from "react";
1212

13-
const ClimateAveragesLoader = ({ rcp, season, variable, setClimateAverages }) => {
13+
const ClimateAveragesLoader = ({ rcp, season, variable, setClimateAverages, setAreAveragesLoading }) => {
1414
useEffect(() => {
1515
const fetchClimateAverages = async () => {
16+
// Set loading state to true before starting the fetch
17+
setAreAveragesLoading(true);
18+
1619
try {
1720
const prepend = process.env.NODE_ENV === "development" ? "http://localhost:3000" : "";
1821

@@ -39,11 +42,14 @@ const ClimateAveragesLoader = ({ rcp, season, variable, setClimateAverages }) =>
3942
setClimateAverages(data);
4043
} catch (error) {
4144
console.error("Error fetching climate averages:", error);
45+
} finally {
46+
// Set loading state to false after fetch completes
47+
setAreAveragesLoading(false);
4248
}
4349
};
4450

4551
fetchClimateAverages();
46-
}, [rcp, season, variable, setClimateAverages]);
52+
}, [rcp, season, variable, setClimateAverages, setAreAveragesLoading]);
4753

4854
return null;
4955
};

client/src/utils/defaultState.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ export const defaultState = {
99
year: 2070,
1010
variable: "tas",
1111
isPredictionLoading: false,
12+
areAveragesLoading: false,
1213
selectedHazardName: "Extreme Storms",
1314
applyCoastalFilter: false,
1415
mapCenter: {lat: 55.8, lng: -3.2},

0 commit comments

Comments
 (0)