feat: local time (#7)

Co-authored-by: terraputix <terraputix@mailbox.org>
Reviewed-on: useweb/ombrella#7
This commit is contained in:
2026-02-16 11:41:34 +01:00
co-authored by terraputix
parent 9a7e66d5d9
commit 84eefd538b
16 changed files with 948 additions and 701 deletions
@@ -55,7 +55,7 @@
interface FetchedData {
ensembleResult: EnsembleForecastResult;
timestamps: number[];
utc_offset_seconds: number;
timezone: string;
markAreas: MarkArea[];
}
@@ -102,15 +102,17 @@
forecast_days: 14,
temperature_unit: params.temperature_unit as 'celsius' | 'fahrenheit',
wind_speed_unit: params.wind_speed_unit as 'kmh' | 'ms' | 'mph' | 'kn',
precipitation_unit: params.precipitation_unit as 'mm' | 'inch'
precipitation_unit: params.precipitation_unit as 'mm' | 'inch',
timezone: loc.timezone
});
fetchedData = {
ensembleResult: result,
timestamps: result.timestamps,
utc_offset_seconds: result.utcOffsetSeconds,
timezone: result.timezone,
markAreas: result.markAreas
};
console.log(fetchedData.timezone);
loading = false;
};
@@ -123,7 +125,7 @@
$effect(() => {
if (!fetchedData) return;
const { ensembleResult, timestamps, utc_offset_seconds, markAreas } = fetchedData;
const { ensembleResult, timestamps, timezone, markAreas } = fetchedData;
const _showLegend = showLegend;
const colors = getThemeColors();
@@ -150,7 +152,7 @@
const averageData = average.map((val, idx) => [timestamps[idx], val] as [number, number]);
series.push(buildAverageSeries({ variable, data: averageData, unit }));
series.push(buildCurrentTimeSeries({ utcOffsetSeconds: utc_offset_seconds }));
series.push(buildCurrentTimeSeries());
const daylightSeries = buildDaylightSeries({ markAreas });
if (daylightSeries) {
@@ -167,7 +169,7 @@
subtext: `Compare ${params.hourly?.join(', ') || ''} in models: ${params.models?.join(', ') || ''}`
}
: null,
tooltip: { unit },
tooltip: { unit, timezone },
legend: {
show: _showLegend,
data: [variable + '_average']
@@ -181,7 +183,8 @@
series,
toolbox: false,
showCredit: isLast,
colors
colors,
timezone
});
newOptions.push(option);