@using JSMR.UI.Blazor.Components
@using JSMR.UI.Blazor.Services
@inject SessionState Session
@inject NavigationManager Navigation
@inherits LayoutComponentBase
JSMR
@* *@
@if (Session.IsAuthenticated)
{
@* Logged in as @Session.Me?.Name (@Session.Me?.Role) *@
@Session.Me?.Name @* (@Session.Me?.Role) *@
Logout
}
else
{
Login
}
Home
Voice Works
Circles
Tags
Creators
Scanner
Analytics
@Body
@* Required *@
@* Needed for dialogs *@
@* Needed for snackbars *@
@code{
private bool _open = false;
private bool _dense = true;
private Breakpoint _breakpoint = Breakpoint.Lg;
private DrawerClipMode _clipMode = DrawerClipMode.Always;
private void ToggleDrawer()
{
_open = !_open;
}
private bool _isDarkMode;
private MudThemeProvider _mudThemeProvider;
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if (firstRender)
{
_isDarkMode = await _mudThemeProvider.GetSystemDarkModeAsync();
StateHasChanged();
}
}
protected override void OnInitialized()
{
Session.Changed += OnSessionChanged;
}
private void OnSessionChanged() => InvokeAsync(StateHasChanged);
private async Task OnLogout(MouseEventArgs _)
{
await Session.LogoutAsync();
}
public void Dispose()
{
Session.Changed -= OnSessionChanged;
}
private async Task LogoutAsync()
{
await Session.LogoutAsync();
Navigation.NavigateTo("/login");
}
}