@using LANCommander.UI.Extensions @using LANCommander.UI.Providers @using Microsoft.JSInterop @inject TimeProvider TimeProvider @inject ScriptProvider ScriptProvider @inject IJSRuntime JS @namespace LANCommander.UI.Components @code { IJSObjectReference? _timeProvider; protected override async Task OnAfterRenderAsync(bool firstRender) { if (firstRender && TimeProvider is LocalTimeProvider localTimeProvider && !localTimeProvider.IsLocalTimeZoneSet) { try { _timeProvider ??= await ScriptProvider.ImportModuleAsync("TimeProvider"); var timeZone = await _timeProvider.InvokeAsync("GetLocalTimeZone"); localTimeProvider.SetLocalTimeZone(timeZone); } catch { var timeZone = await JS.InvokeAsync("eval", "Intl.DateTimeFormat().resolvedOptions().timeZone"); localTimeProvider.SetLocalTimeZone(timeZone); } } } }