Show weather in both Celsius and Fahrenheit

This commit is contained in:
2026-06-27 18:59:32 -05:00
parent 9a130be5e0
commit 085ecd5ce4
3 changed files with 16 additions and 9 deletions
+11 -5
View File
@@ -25,17 +25,23 @@ export async function GET() {
const current = json.current_weather || {};
const daily = json.daily || {};
const celsius = (v: number | undefined) => (v === undefined ? undefined : Math.round(v));
const fahrenheit = (v: number | undefined) => (v === undefined ? undefined : Math.round((v * 9) / 5 + 32));
return NextResponse.json({
data: {
current: {
temperature: current.temperature,
celsius: celsius(current.temperature),
fahrenheit: fahrenheit(current.temperature),
windspeed: current.windspeed,
weathercode: current.weathercode,
summary: codeMap[current.weathercode] || 'Unknown',
},
today: {
max: daily.temperature_2m_max?.[0],
min: daily.temperature_2m_min?.[0],
maxC: celsius(daily.temperature_2m_max?.[0]),
minC: celsius(daily.temperature_2m_min?.[0]),
maxF: fahrenheit(daily.temperature_2m_max?.[0]),
minF: fahrenheit(daily.temperature_2m_min?.[0]),
weathercode: daily.weathercode?.[0],
summary: codeMap[daily.weathercode?.[0]] || 'Unknown',
},
@@ -46,8 +52,8 @@ export async function GET() {
return NextResponse.json(
{
data: {
current: { temperature: 18, windspeed: 6, weathercode: 1, summary: 'Mainly clear' },
today: { max: 22, min: 10, weathercode: 1, summary: 'Mainly clear' },
current: { celsius: 18, fahrenheit: 64, windspeed: 6, weathercode: 1, summary: 'Mainly clear' },
today: { maxC: 22, minC: 10, maxF: 72, minF: 50, weathercode: 1, summary: 'Mainly clear' },
},
},
{ status: 200 }
+4 -4
View File
@@ -12,8 +12,8 @@ interface CalendarEvent {
}
interface WeatherData {
current?: { temperature: number; summary: string };
today?: { max: number; min: number; summary: string };
current?: { celsius: number; fahrenheit: number; summary: string };
today?: { maxC: number; minC: number; maxF: number; minF: number; summary: string };
}
const gold = '#E8A849';
@@ -66,9 +66,9 @@ export default function CalendarStrip() {
{
id: 9999,
date: new Date().toISOString().split('T')[0],
title: `${weather.current?.temperature ?? '--'}°C ${weather.current?.summary ?? ''}`,
title: `${weather.current?.celsius ?? '--'}°C / ${weather.current?.fahrenheit ?? '--'}°F ${weather.current?.summary ?? ''}`,
type: 'weather' as const,
description: `Today ${weather.today?.max ?? '--'}° / ${weather.today?.min ?? '--'}°`,
description: `Today ${weather.today?.maxC ?? '--'}°C / ${weather.today?.maxF ?? '--'}°F · ${weather.today?.minC ?? '--'}°C / ${weather.today?.minF ?? '--'}°F`,
color: '#4FC3F7',
isWeather: true,
},
File diff suppressed because one or more lines are too long