Use cache

This commit is contained in:
Florian Schroedl
2024-01-23 16:56:24 +01:00
parent 7b42d17ff8
commit a177aaedea
3 changed files with 5 additions and 8 deletions

View File

@@ -50,7 +50,7 @@ const Navigation = function ({ router }) {
const id = route.id;
const className = id === activeRouteId ? "font-bold" : "";
return (
<li className={className}>
<li className={className} key={id}>
<button onClick={() => onUpdateRoute(route.path)}>{id}</button>
</li>
);

View File

@@ -3,7 +3,7 @@ import { modifyPath, mergeDeepRight } from "ramda";
const STORAGE_KEY = "ecoplanet";
const defaultState = {
dateCache: undefined,
dataCache: undefined,
options: {
lineWidth: undefined,
defaultDate: undefined,

View File

@@ -21,8 +21,6 @@ const fetchWeekForecastData = async function (dateTime, cb) {
const data = await Promise.all(forecastRequests);
console.log(data);
const chartData = data.map((forecastData) => {
const dayData = forecastData.forecast.forecastday[0];
const date = dayData.date;
@@ -52,14 +50,13 @@ const WeatherChart = function ({ data }) {
);
};
export const Dashboard = function ({ state, updateCache }) {
export const Dashboard = function ({ state, updateState }) {
const [dateTime, setDateTime] = useState(
minDate(state?.options?.startDate || new Date()),
);
const [data, setData] = useState(null);
useEffect(() => {
fetchWeekForecastData(dateTime, setData);
fetchWeekForecastData(dateTime, (data) => updateState({ dataCache: data }));
}, [dateTime]);
return (
@@ -68,7 +65,7 @@ export const Dashboard = function ({ state, updateCache }) {
<h1 className="text-lg font-medium mb-2">Forecast</h1>
<ForecastDatePicker dateTime={dateTime} onChange={setDateTime} />
</div>
{data ? <WeatherChart data={data} /> : "Loading..."}
{state.dataCache ? <WeatherChart data={state.dataCache} /> : "Loading..."}
</div>
);
};