LANCommander/LANCommander.UI/Components/LocalTime/LocalTimeInitializer.razor
Pat Hartl 66abc6e59e Implement infinite loading with chat thread
- Chat messages are now loaded based on scroll position
- Read status is now updated and set by last message read
- Reworked script importing by using ScriptProvider
2026-01-11 14:38:24 -06:00

32 lines
No EOL
1 KiB
Text

@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<string>("GetLocalTimeZone");
localTimeProvider.SetLocalTimeZone(timeZone);
}
catch
{
var timeZone = await JS.InvokeAsync<string>("eval", "Intl.DateTimeFormat().resolvedOptions().timeZone");
localTimeProvider.SetLocalTimeZone(timeZone);
}
}
}
}