@eggtronic/react-weather-widget
Version:
A nice weather widget component for react
118 lines (112 loc) • 2.31 kB
text/typescript
export interface CurrentWeatherData {
dt: number;
sunrise: number;
sunset: number;
temp: number;
feels_like: number;
pressure: number;
humidity: number;
dew_point: number;
uvi: number;
clouds: number;
visibility: number;
wind_speed: number;
wind_deg: number;
weather: {
id: number;
main: string;
description: string;
icon: string;
}[];
}
export interface HourlyWeatherData {
dt: number;
temp: number;
feels_like: number;
pressure: number;
humidity: number;
dew_point: number;
clouds: number;
visibility: number;
wind_speed: number;
wind_deg: number;
weather: {
id: number;
main: string;
description: string;
icon: string;
}[];
pop: number;
rain?: undefined | { '1h': number };
}
export interface DailyWeatherData {
dt: number;
sunrise: number;
sunset: number;
temp: {
day: number;
min: number;
max: number;
night: number;
eve: number;
morn: number;
};
feels_like: {
day: number;
night: number;
eve: number;
morn: number;
};
pressure: number;
humidity: number;
dew_point: number;
wind_speed: number;
wind_deg: number;
weather: {
id: number;
main: string;
description: string;
icon: string;
}[];
clouds: number;
pop: number;
rain?: number | undefined;
uvi: number;
}
export interface WeatherData {
lat: number;
lon: number;
timezone: string;
timezone_offset: number;
current: CurrentWeatherData;
hourly: HourlyWeatherData[];
daily: DailyWeatherData[];
}
export type OpenWeatherMapExclude =
['main'] |
['daily'] |
['hourly'] |
['daily', 'hourly'] |
['main', 'daily'] |
['main', 'hourly'] |
null |
undefined;
export interface WeatherWidgetTheme {
color: [string, string];
width: string;
height: string;
mainFontSize: string;
subFontSize: string;
mainFontColor: string;
subFontColor: string;
hrColor: string;
lineChartPadding: [number, number];
lineChartHeight: string;
lineChartColor: string;
lineChartLabelColor: string;
lineChartLabelPadding: [number, number];
lineChartLabelSize: number;
}
export interface LineChartData {
[key: string]: number;
}