2026-01-03 15:51:47 -06:00
|
|
|
@using LANCommander.UI.Extensions
|
2025-03-17 02:02:17 -05:00
|
|
|
@using LANCommander.UI.Providers
|
|
|
|
|
@using Microsoft.JSInterop
|
|
|
|
|
@inject TimeProvider TimeProvider
|
2026-01-11 14:38:24 -06:00
|
|
|
@inject ScriptProvider ScriptProvider
|
2025-03-17 02:02:17 -05:00
|
|
|
@inject IJSRuntime JS
|
2025-09-06 13:09:47 -05:00
|
|
|
@namespace LANCommander.UI.Components
|
2025-03-17 02:02:17 -05:00
|
|
|
|
|
|
|
|
@code {
|
2026-01-03 15:51:47 -06:00
|
|
|
IJSObjectReference? _timeProvider;
|
|
|
|
|
|
2025-03-17 02:02:17 -05:00
|
|
|
protected override async Task OnAfterRenderAsync(bool firstRender)
|
|
|
|
|
{
|
2026-01-03 18:26:30 -06:00
|
|
|
if (firstRender && TimeProvider is LocalTimeProvider localTimeProvider && !localTimeProvider.IsLocalTimeZoneSet)
|
2025-03-17 02:02:17 -05:00
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
2026-01-11 14:38:24 -06:00
|
|
|
_timeProvider ??= await ScriptProvider.ImportModuleAsync("TimeProvider");
|
2026-01-03 18:26:30 -06:00
|
|
|
|
2026-01-03 15:51:47 -06:00
|
|
|
var timeZone = await _timeProvider.InvokeAsync<string>("GetLocalTimeZone");
|
2025-03-17 02:02:17 -05:00
|
|
|
|
|
|
|
|
localTimeProvider.SetLocalTimeZone(timeZone);
|
|
|
|
|
}
|
2025-05-04 16:44:58 -05:00
|
|
|
catch
|
2025-03-17 02:02:17 -05:00
|
|
|
{
|
2025-05-04 16:44:58 -05:00
|
|
|
var timeZone = await JS.InvokeAsync<string>("eval", "Intl.DateTimeFormat().resolvedOptions().timeZone");
|
|
|
|
|
|
|
|
|
|
localTimeProvider.SetLocalTimeZone(timeZone);
|
2025-03-17 02:02:17 -05:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|