LANCommander/LANCommander.UI/Components/LocalTimeInitializer.razor
2025-05-04 16:44:58 -05:00

25 lines
No EOL
804 B
Text

@using LANCommander.UI.Providers
@using Microsoft.JSInterop
@inject TimeProvider TimeProvider
@inject IJSRuntime JS
@code {
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if (firstRender && TimeProvider is LocalTimeProvider localTimeProvider && !localTimeProvider.IsLocalTimeZoneSet)
{
try
{
var timeZone = await JS.InvokeAsync<string>("window.TimeProvider.GetLocalTimeZone");
localTimeProvider.SetLocalTimeZone(timeZone);
}
catch
{
var timeZone = await JS.InvokeAsync<string>("eval", "Intl.DateTimeFormat().resolvedOptions().timeZone");
localTimeProvider.SetLocalTimeZone(timeZone);
}
}
}
}