Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | 4x 4x 4x 4x 1x 1x 1x 4x 6x 6x 6x | import useSWR from 'swr';
import type { HeatingData } from '../types/api';
const url = `${process.env.NEXT_PUBLIC_DOMAIN}/api/heating`;
const initialValues: HeatingData = {
outsideTemp: 0,
zoneMeasuredTemp: 0,
};
const fetchHeating = async (url: string): Promise<HeatingData> => {
const response = await fetch(url);
Iif (!response.ok) {
throw new Error(`Failed to fetch heating data: ${response.statusText}`);
}
const data = await response.json();
return data as HeatingData;
};
const useHeating = (): {
data: HeatingData;
error: boolean;
loading: boolean;
} => {
const { data, error, isLoading } = useSWR<HeatingData>(url, fetchHeating, {
keepPreviousData: true,
fallback: initialValues,
fallbackData: initialValues,
dedupingInterval: 5000,
});
return {
data: data ?? initialValues,
error,
loading: isLoading,
};
};
export default useHeating;
|