@page "/settings" @attribute [Authorize] @inject IUserSessionService Session @inject IJSRuntime JS @rendermode InteractiveServer @using Microsoft.JSInterop

Settings

Display
Behavior
@if (_saved) {
Settings saved.
} @code { private string _lang = "en", _theme = "System"; private bool _autoTakeOwnership, _saved; protected override void OnInitialized() { var s = Session.Settings; _lang = s.Lang; _theme = s.Theme is "System" or "Light" ? s.Theme : "System"; _autoTakeOwnership = s.AutoTakeOwnership; } private async Task Save() { Session.UpdateSettings(new AppSettings { Lang = _lang, Theme = _theme, AutoTakeOwnership = _autoTakeOwnership }); SharepointToolbox.Web.Localization.TranslationSource.Instance.SetCulture(_lang); await JS.InvokeVoidAsync("sptb.setTheme", _theme); _saved = true; StateHasChanged(); _ = Task.Delay(2000).ContinueWith(_ => { _saved = false; InvokeAsync(StateHasChanged); }); } }