-
{formatDayName(g.points[0].ts)}
+
+
{formatDayName(g.points[0].ts)}
+
+
{g.points.map(p => (
{formatHour(p.ts)}
{roundTemp(p.temp_c)}
+
))}
@@ -136,7 +186,6 @@ export default function Display() {
{data.daily.map(p => (
@@ -166,9 +215,7 @@ function HourCard({ point, isNow }: { point: ForecastPoint; isNow: boolean }) {
{isNow ? 'Now' : formatHour(point.ts)}
{roundTemp(point.temp_c)}
- {point.precip_prob != null && point.precip_prob >= 20 && (
-
{Math.round(point.precip_prob)}%
- )}
+
)
}
diff --git a/frontend/src/types.ts b/frontend/src/types.ts
index 742adff..c65aaf7 100644
--- a/frontend/src/types.ts
+++ b/frontend/src/types.ts
@@ -14,13 +14,20 @@ export interface ForecastPoint {
feels_like_c: number | null
precip_prob: number | null
wind_speed_mph: number | null
+ wind_dir_deg: number | null
icon: IconKey
}
+export interface Astro {
+ sunrise: string | null
+ sunset: string | null
+}
+
export interface ForecastPayload {
hourly: ForecastPoint[] // today, full day
threeHourly: ForecastPoint[] // next 2 days
daily: ForecastPoint[] // days 4-7
+ astro: Record
// keyed by YYYY-MM-DD (London-local) — today + next 2 days
meta: {
fetched_at: string | null
provider: 'met_office' | 'open_meteo' | null