Persist frontend theme preference
This commit is contained in:
@@ -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>
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user