@inherits LocalizableComponentBase @code { [CascadingParameter] CascadingState CascadingState { get; set; } string menuToggle = "hidden"; bool IsThemeChanging { get; set; } = false; bool ThemeIsDarkMode { get; set; } = false; short ThemeIndexColour { get; set; } = 25; int RandomId { get; set; } protected override async Task OnInitializedAsync() { await Task.Run(() => { }); RandomId = Random.Shared.Next(0, int.MaxValue); if (!CascadingState.Status.IsMobileMedia()) menuToggle = default; ThemeIsDarkMode = CascadingState.PublicCacheData?.PageSettings.ThemeIsDarkMode ?? false; ThemeIndexColour = ThemeIsDarkMode ? CascadingState.PublicCacheData?.PageSettings.DarkThemeIndexColour ?? 215 : CascadingState.PublicCacheData?.PageSettings.LightThemeIndexColour ?? 25; } private void ToggleNavMenu() { menuToggle = menuToggle is { Length: > 0 } ? default : "hidden"; } protected async Task ResetToOriginalColour() { IsThemeChanging = true; CascadingState.PublicCacheData.PageSettings.LightThemeIndexColour = ThemeIndexColour = 25; // if (AuthData?.User != null) // { // AuthData.User.UserSettings.ThemeIndexColour = ThemeIndexColour; // await Storage.SetItemAsync(nameof(AuthData), AuthData); // } await CascadingState.UpdatePublicCache(CascadingState.PublicCacheData); IsThemeChanging = false; } protected async Task UpdateThemeColour(ChangeEventArgs eventArgs) { IsThemeChanging = true; var indexColour = short.Parse(eventArgs.Value?.ToString()); CascadingState.PublicCacheData.PageSettings.LightThemeIndexColour = ThemeIndexColour = indexColour; // if (AuthData?.User != null) // { // AuthData.User.UserSettings.ThemeIndexColour = ThemeIndexColour; // await Storage.SetItemAsync(nameof(AuthData), AuthData); // } await CascadingState.UpdatePublicCache(CascadingState.PublicCacheData); IsThemeChanging = false; } protected async Task UpdateThemeDarkMode(bool isDarkMode) { IsThemeChanging = true; CascadingState.PublicCacheData.PageSettings.ThemeIsDarkMode = ThemeIsDarkMode = isDarkMode; Console.WriteLine("Dark updated {0}", ThemeIsDarkMode); // if (AuthData?.User != null) // { // AuthData.User.UserSettings.ThemeIsDarkMode = ThemeIsDarkMode; // await Storage.SetItemAsync(nameof(AuthData), AuthData); // } await CascadingState.UpdatePublicCache(CascadingState.PublicCacheData); IsThemeChanging = false; } }