feat: add account settings page with theme choice
This commit is contained in:
1 parent
cb70a2f0a6
commit
c04fa1df44
3 files changed
+37
No files matched your search
@@ -16,6 +16,9 @@
|
||||
<MudText Typo="Typo.caption">@string.Join(", ", RolesOf(auth.User))</MudText>
|
||||
</div>
|
||||
<MudDivider />
|
||||
<MudMenuItem Icon="@Icons.Material.Filled.Settings" OnClick="@(() => Navigation.NavigateTo("konto/einstellungen"))">
|
||||
Meine Einstellungen
|
||||
</MudMenuItem>
|
||||
<MudMenuItem Icon="@Icons.Material.Filled.Password" OnClick="@(() => Navigation.NavigateTo("konto/passwort"))">
|
||||
Passwort ändern
|
||||
</MudMenuItem>
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
@page "/konto/einstellungen"
|
||||
@inject ThemeState Theme
|
||||
|
||||
<PageTitle>Meine Einstellungen – Familienplaner</PageTitle>
|
||||
|
||||
<MudText Typo="Typo.h4" HtmlTag="h1" Class="mb-4">Meine Einstellungen</MudText>
|
||||
|
||||
<MudPaper Outlined="true" Class="pa-4 fp-account-settings" Style="max-width: 640px">
|
||||
<MudText Typo="Typo.h6" HtmlTag="h2" Class="mb-2">Darstellung</MudText>
|
||||
<MudRadioGroup T="ThemePreference" Value="Theme.Preference" ValueChanged="OnThemeChangedAsync" Class="fp-theme-choice">
|
||||
<MudRadio T="ThemePreference" Value="ThemePreference.System" Color="Color.Primary">Wie das Gerät</MudRadio>
|
||||
<MudRadio T="ThemePreference" Value="ThemePreference.Light" Color="Color.Primary">Hell</MudRadio>
|
||||
<MudRadio T="ThemePreference" Value="ThemePreference.Dark" Color="Color.Primary">Dunkel</MudRadio>
|
||||
</MudRadioGroup>
|
||||
|
||||
<MudDivider Class="my-4" />
|
||||
|
||||
<MudText Typo="Typo.h6" HtmlTag="h2" Class="mb-2">Benachrichtigungen</MudText>
|
||||
<MudText Typo="Typo.body2" Class="mb-2">Erinnerungen auf diesem Gerät ein- oder ausschalten.</MudText>
|
||||
<MudButton Href="konto/benachrichtigungen" Variant="Variant.Outlined" Color="Color.Primary" Class="fp-settings-notifications"
|
||||
StartIcon="@Icons.Material.Filled.Notifications">Benachrichtigungen einstellen</MudButton>
|
||||
</MudPaper>
|
||||
|
||||
@code {
|
||||
private Task OnThemeChangedAsync(ThemePreference preference) => Theme.SetPreferenceAsync(preference);
|
||||
}
|
||||
@@ -45,4 +45,12 @@ public sealed class ThemeState(IJSRuntime js)
|
||||
await js.InvokeVoidAsync("familyPlanner.theme.save", Preference.ToString());
|
||||
Changed?.Invoke();
|
||||
}
|
||||
|
||||
/// <summary>Setzt die Wahl ausdrücklich (System/Hell/Dunkel) und speichert sie lokal.</summary>
|
||||
public async Task SetPreferenceAsync(ThemePreference preference)
|
||||
{
|
||||
Preference = preference;
|
||||
await js.InvokeVoidAsync("familyPlanner.theme.save", Preference.ToString());
|
||||
Changed?.Invoke();
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user