159 lines
2.7 KiB
TypeScript
159 lines
2.7 KiB
TypeScript
export interface Forecast {
|
|
coord: {
|
|
lon: number;
|
|
lat: number;
|
|
};
|
|
weather: Array<{
|
|
id: number;
|
|
main: string;
|
|
description: string;
|
|
icon: string;
|
|
}>;
|
|
base: string;
|
|
main: {
|
|
temp: number;
|
|
feels_like: number;
|
|
temp_min: number;
|
|
temp_max: number;
|
|
pressure: number;
|
|
humidity: number;
|
|
};
|
|
visibility: number;
|
|
wind: {
|
|
speed: number;
|
|
deg: number;
|
|
};
|
|
clouds: {
|
|
all: number;
|
|
};
|
|
dt: number;
|
|
sys: {
|
|
type: number;
|
|
id: number;
|
|
country: string;
|
|
sunrise: number;
|
|
sunset: number;
|
|
};
|
|
timezone: number;
|
|
id: number;
|
|
name: string;
|
|
cod: number;
|
|
}
|
|
|
|
export interface HourlyForecast {
|
|
cod: string;
|
|
message: number;
|
|
cnt: number;
|
|
list: Array<{
|
|
dt: number;
|
|
main: {
|
|
temp: number;
|
|
feels_like: number;
|
|
temp_min: number;
|
|
temp_max: number;
|
|
pressure: number;
|
|
sea_level: number;
|
|
grnd_level: number;
|
|
humidity: number;
|
|
temp_kf: number;
|
|
};
|
|
weather: Array<{
|
|
id: number;
|
|
main: string;
|
|
description: string;
|
|
icon: string;
|
|
}>;
|
|
clouds: {
|
|
all: number;
|
|
};
|
|
wind: {
|
|
speed: number;
|
|
deg: number;
|
|
gust: number;
|
|
};
|
|
visibility: number;
|
|
pop: number;
|
|
rain?: {
|
|
"1h": number;
|
|
};
|
|
sys: {
|
|
pod: string;
|
|
};
|
|
dt_txt: string;
|
|
}>;
|
|
city: {
|
|
id: number;
|
|
name: string;
|
|
coord: {
|
|
lat: number;
|
|
lon: number;
|
|
};
|
|
country: string;
|
|
population: number;
|
|
timezone: number;
|
|
sunrise: number;
|
|
sunset: number;
|
|
};
|
|
}
|
|
|
|
export interface LocationType {
|
|
results: {
|
|
address_components: {
|
|
long_name: string;
|
|
short_name: string;
|
|
types: string[];
|
|
}[];
|
|
formatted_address: string;
|
|
geometry: {
|
|
bounds: {
|
|
northeast: {
|
|
lat: number;
|
|
lng: number;
|
|
};
|
|
southwest: {
|
|
lat: number;
|
|
lng: number;
|
|
};
|
|
};
|
|
location: {
|
|
lat: number;
|
|
lng: number;
|
|
};
|
|
location_type: string;
|
|
viewport: {
|
|
northeast: {
|
|
lat: number;
|
|
lng: number;
|
|
};
|
|
southwest: {
|
|
lat: number;
|
|
lng: number;
|
|
};
|
|
};
|
|
};
|
|
place_id: string;
|
|
types: string[];
|
|
}[];
|
|
status: string;
|
|
}
|
|
|
|
export interface coordType {
|
|
lat: number;
|
|
lng: number;
|
|
}
|
|
export type EffectCallback = () => void | (() => void | undefined);
|
|
|
|
export interface TempInfo {
|
|
temp: number;
|
|
feels_like: number;
|
|
temp_min: number;
|
|
temp_max: number;
|
|
pressure: number;
|
|
humidity: number;
|
|
}
|
|
|
|
|
|
export interface LocationContextType {
|
|
geoLocation: coordType;
|
|
setGeoLocation: React.Dispatch<React.SetStateAction<coordType>>;
|
|
} |