fix: add missing break statements in weather code switch

WMO weather codes 1, 2, 45, 51, 53, 56, 61, 63, 66, 71, 73, 80, 81,
85, 86, and 96 were missing break statements, causing fall-through
that overwrote each condition with the last label in its group. For
example, code 1 (Mainly Clear) fell through to code 3, so the widget
always displayed 'Cloudy'. Also adds the shared group icon to each
early case so the widget renders an icon for every code.
This commit is contained in:
lawrence3699
2026-04-10 00:33:06 +10:00
parent 9e8d883768
commit e0aac65e64

View File

@@ -62,57 +62,79 @@ export const POST = async (req: Request) => {
break;
case 1:
weather.icon = `cloudy-1-${dayOrNight}`;
weather.condition = 'Mainly Clear';
break;
case 2:
weather.icon = `cloudy-1-${dayOrNight}`;
weather.condition = 'Partly Cloudy';
break;
case 3:
weather.icon = `cloudy-1-${dayOrNight}`;
weather.condition = 'Cloudy';
break;
case 45:
weather.icon = `fog-${dayOrNight}`;
weather.condition = 'Fog';
break;
case 48:
weather.icon = `fog-${dayOrNight}`;
weather.condition = 'Fog';
break;
case 51:
weather.icon = `rainy-1-${dayOrNight}`;
weather.condition = 'Light Drizzle';
break;
case 53:
weather.icon = `rainy-1-${dayOrNight}`;
weather.condition = 'Moderate Drizzle';
break;
case 55:
weather.icon = `rainy-1-${dayOrNight}`;
weather.condition = 'Dense Drizzle';
break;
case 56:
weather.icon = `frost-${dayOrNight}`;
weather.condition = 'Light Freezing Drizzle';
break;
case 57:
weather.icon = `frost-${dayOrNight}`;
weather.condition = 'Dense Freezing Drizzle';
break;
case 61:
weather.icon = `rainy-2-${dayOrNight}`;
weather.condition = 'Slight Rain';
break;
case 63:
weather.icon = `rainy-2-${dayOrNight}`;
weather.condition = 'Moderate Rain';
break;
case 65:
weather.condition = 'Heavy Rain';
weather.icon = `rainy-2-${dayOrNight}`;
break;
case 66:
weather.icon = 'rain-and-sleet-mix';
weather.condition = 'Light Freezing Rain';
break;
case 67:
weather.condition = 'Heavy Freezing Rain';
weather.icon = 'rain-and-sleet-mix';
break;
case 71:
weather.icon = `snowy-2-${dayOrNight}`;
weather.condition = 'Slight Snow Fall';
break;
case 73:
weather.icon = `snowy-2-${dayOrNight}`;
weather.condition = 'Moderate Snow Fall';
break;
case 75:
weather.condition = 'Heavy Snow Fall';
weather.icon = `snowy-2-${dayOrNight}`;
@@ -124,18 +146,26 @@ export const POST = async (req: Request) => {
break;
case 80:
weather.icon = `rainy-3-${dayOrNight}`;
weather.condition = 'Slight Rain Showers';
break;
case 81:
weather.icon = `rainy-3-${dayOrNight}`;
weather.condition = 'Moderate Rain Showers';
break;
case 82:
weather.condition = 'Heavy Rain Showers';
weather.icon = `rainy-3-${dayOrNight}`;
break;
case 85:
weather.icon = `snowy-3-${dayOrNight}`;
weather.condition = 'Slight Snow Showers';
break;
case 86:
weather.icon = `snowy-3-${dayOrNight}`;
weather.condition = 'Moderate Snow Showers';
break;
case 87:
weather.condition = 'Heavy Snow Showers';
weather.icon = `snowy-3-${dayOrNight}`;
@@ -147,7 +177,9 @@ export const POST = async (req: Request) => {
break;
case 96:
weather.icon = 'severe-thunderstorm';
weather.condition = 'Thunderstorm with Slight Hail';
break;
case 99:
weather.condition = 'Thunderstorm with Heavy Hail';
weather.icon = 'severe-thunderstorm';