@using ArcaneLibs.Blazor.Components @using ArcaneLibs.Blazor.Components.Services @using Spacebar.Client.WebCore @inject SessionStore sessionStore @inject JsConsoleService jsConsole @if (_sessionPickerVisible) { @foreach (var (sessionId, session) in _sessionEntries) { @(session.ProfileCache?.Username ?? "Unknown user")#@(session.ProfileCache?.Discriminator ?? "0000") on @session.ServerName }

Log in Register
} @code { private bool _sessionPickerVisible; private DebugBanner _dbgBanner; private Dictionary _sessionEntries = []; protected override async Task OnAfterRenderAsync(bool firstRender) { if (!firstRender) return; await _dbgBanner.SetStatus("Crunching numbers..."); _sessionPickerVisible = await sessionStore.GetCurrentSessionAsync() == null; await _dbgBanner.SetStatus("Ready!"); await _dbgBanner.SetStatus(null, 1000); } public async Task SetSessionPickerVisible(bool visible = true) { await jsConsole.Info("[SessionManager] showing session picker..."); _sessionEntries = visible ? await sessionStore.GetAllSessionsAsync() : []; _sessionPickerVisible = visible; StateHasChanged(); await Task.Delay(1); } private async Task SetCurrentSessionAsync(Guid sessionId) { _sessionPickerVisible = false; StateHasChanged(); await sessionStore.SetCurrentSessionAsync(sessionId); var cs = await sessionStore.GetCurrentSessionAsync(); await _dbgBanner.SetStatus($"Current session changed to {cs!.ProfileCache?.Username}#{cs.ProfileCache?.Discriminator} ({cs.ProfileCache.Id}) / {sessionId.ToString()}!"); await _dbgBanner.SetStatus(null, 3000); } }