@inherits LayoutComponentBase
@implements IDisposable
@inject AppThemeState ThemeState
@inject IJSRuntime JS
An unhandled error has occurred.
Reload
🗙
@code {
private bool sidebarCollapsed = true;
protected override void OnInitialized()
{
ThemeState.ThemeModeChanged += HandleThemeModeChanged;
}
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if (!firstRender)
{
return;
}
var themeMode = await ThemeState.EnsureLoadedAsync();
await ApplyThemeAsync(themeMode);
}
private void ToggleSidebar()
{
sidebarCollapsed = !sidebarCollapsed;
}
private void HandleThemeModeChanged(AppThemeMode themeMode)
{
_ = InvokeAsync(() => ApplyThemeAsync(themeMode).AsTask());
}
private ValueTask ApplyThemeAsync(AppThemeMode themeMode)
{
return JS.InvokeVoidAsync("workTrackerTheme.setTheme", themeMode.ToString().ToLowerInvariant());
}
public void Dispose()
{
ThemeState.ThemeModeChanged -= HandleThemeModeChanged;
}
}