20 lines
747 B
TypeScript
20 lines
747 B
TypeScript
"use client";
|
|
|
|
import { useQuery } from "@tanstack/react-query";
|
|
import { fetchCurrentWeather } from "@/lib/imgw-current-api";
|
|
import { QUERY_GC_TIME } from "@/lib/constants";
|
|
import type { WeatherRegion } from "@/types/weather-region";
|
|
|
|
const CURRENT_WEATHER_STALE_TIME = 2 * 60 * 1000;
|
|
|
|
export function useCurrentWeather(latitude?: number, longitude?: number, region: WeatherRegion = "PL") {
|
|
return useQuery({
|
|
queryKey: ["current-weather", region, latitude, longitude],
|
|
queryFn: ({ signal }) => fetchCurrentWeather(latitude as number, longitude as number, region, signal),
|
|
staleTime: CURRENT_WEATHER_STALE_TIME,
|
|
gcTime: QUERY_GC_TIME,
|
|
retry: 1,
|
|
enabled: Number.isFinite(latitude) && Number.isFinite(longitude),
|
|
});
|
|
}
|