Persist frontend theme preference

This commit is contained in:
2026-03-21 13:13:26 +01:00
parent 0b7cc846e7
commit 4f1ef770c7
8 changed files with 103 additions and 5 deletions

View File

@@ -20,6 +20,7 @@
<body>
<Routes />
<ReconnectModal />
<script src="@Assets["theme.js"]"></script>
<script src="@Assets["tables.js"]"></script>
<script src="@Assets["_framework/blazor.web.js"]"></script>
</body>

View File

@@ -1,4 +1,6 @@
@inherits LayoutComponentBase
@inherits LayoutComponentBase
@implements IDisposable
@inject RolemasterDb.App.Frontend.AppState.ThemeState ThemeState
<div class="page">
<div class="sidebar">
@@ -17,3 +19,25 @@
<a href="." class="reload">Reload</a>
<span class="dismiss">🗙</span>
</div>
@code {
protected override void OnInitialized()
{
ThemeState.Changed += HandleThemeChanged;
}
protected override Task OnAfterRenderAsync(bool firstRender) =>
firstRender
? ThemeState.InitializeAsync()
: Task.CompletedTask;
private void HandleThemeChanged()
{
_ = InvokeAsync(StateHasChanged);
}
public void Dispose()
{
ThemeState.Changed -= HandleThemeChanged;
}
}