@eggtronic/react-weather-widget
Version:
A nice weather widget component for react
107 lines (106 loc) • 2.53 kB
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 declare 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;
}