Use cache
This commit is contained in:
@@ -50,7 +50,7 @@ const Navigation = function ({ router }) {
|
|||||||
const id = route.id;
|
const id = route.id;
|
||||||
const className = id === activeRouteId ? "font-bold" : "";
|
const className = id === activeRouteId ? "font-bold" : "";
|
||||||
return (
|
return (
|
||||||
<li className={className}>
|
<li className={className} key={id}>
|
||||||
<button onClick={() => onUpdateRoute(route.path)}>{id}</button>
|
<button onClick={() => onUpdateRoute(route.path)}>{id}</button>
|
||||||
</li>
|
</li>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { modifyPath, mergeDeepRight } from "ramda";
|
|||||||
const STORAGE_KEY = "ecoplanet";
|
const STORAGE_KEY = "ecoplanet";
|
||||||
|
|
||||||
const defaultState = {
|
const defaultState = {
|
||||||
dateCache: undefined,
|
dataCache: undefined,
|
||||||
options: {
|
options: {
|
||||||
lineWidth: undefined,
|
lineWidth: undefined,
|
||||||
defaultDate: undefined,
|
defaultDate: undefined,
|
||||||
|
|||||||
@@ -21,8 +21,6 @@ const fetchWeekForecastData = async function (dateTime, cb) {
|
|||||||
|
|
||||||
const data = await Promise.all(forecastRequests);
|
const data = await Promise.all(forecastRequests);
|
||||||
|
|
||||||
console.log(data);
|
|
||||||
|
|
||||||
const chartData = data.map((forecastData) => {
|
const chartData = data.map((forecastData) => {
|
||||||
const dayData = forecastData.forecast.forecastday[0];
|
const dayData = forecastData.forecast.forecastday[0];
|
||||||
const date = dayData.date;
|
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(
|
const [dateTime, setDateTime] = useState(
|
||||||
minDate(state?.options?.startDate || new Date()),
|
minDate(state?.options?.startDate || new Date()),
|
||||||
);
|
);
|
||||||
const [data, setData] = useState(null);
|
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
fetchWeekForecastData(dateTime, setData);
|
fetchWeekForecastData(dateTime, (data) => updateState({ dataCache: data }));
|
||||||
}, [dateTime]);
|
}, [dateTime]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@@ -68,7 +65,7 @@ export const Dashboard = function ({ state, updateCache }) {
|
|||||||
<h1 className="text-lg font-medium mb-2">Forecast</h1>
|
<h1 className="text-lg font-medium mb-2">Forecast</h1>
|
||||||
<ForecastDatePicker dateTime={dateTime} onChange={setDateTime} />
|
<ForecastDatePicker dateTime={dateTime} onChange={setDateTime} />
|
||||||
</div>
|
</div>
|
||||||
{data ? <WeatherChart data={data} /> : "Loading..."}
|
{state.dataCache ? <WeatherChart data={state.dataCache} /> : "Loading..."}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user