mirror of
https://github.com/DrMboga/WotBlitzStatisticsBlazor.git
synced 2026-10-23 19:30:06 +02:00
feat: selected realm stored in browser's local storage
This commit is contained in:
1 parent
4fb56c3b16
commit
46ed757dcb
10 files changed
+79
-5
No files matched your search
@@ -1,4 +1,5 @@
|
||||
using System.Threading.Tasks;
|
||||
using WotBlitzStatisticsPro.Blazor.Model;
|
||||
|
||||
namespace WotBlitzStatisticsPro.Blazor.Services
|
||||
{
|
||||
@@ -7,5 +8,7 @@ namespace WotBlitzStatisticsPro.Blazor.Services
|
||||
Task SetItemAsync<T>(string key, T item);
|
||||
|
||||
Task<T> GetItemAsync<T>(string key);
|
||||
|
||||
Task<UserSettings> ReadSettings();
|
||||
}
|
||||
}
|
||||
@@ -9,7 +9,7 @@ using WotBlitzStatisticsPro.Blazor.Model;
|
||||
|
||||
namespace WotBlitzStatisticsPro.Blazor.Services
|
||||
{
|
||||
public class LocalStorageService: ILocalStorageService, INotificationHandler<ChangeCurrentCultureMessage>
|
||||
public class LocalStorageService: ILocalStorageService, INotificationHandler<ChangeCurrentCultureMessage>, INotificationHandler<ChangeCurrentRealmTypeMessage>
|
||||
{
|
||||
private readonly IJSRuntime _jsRuntime;
|
||||
private readonly NavigationManager _navigationManager;
|
||||
@@ -36,12 +36,24 @@ namespace WotBlitzStatisticsPro.Blazor.Services
|
||||
: JsonSerializer.Deserialize<T>(json);
|
||||
}
|
||||
|
||||
public async Task<UserSettings> ReadSettings()
|
||||
{
|
||||
return await GetItemAsync<UserSettings>(UserSettings.UserSettingsLocalStorageKey) ?? new UserSettings();
|
||||
}
|
||||
|
||||
public async Task Handle(ChangeCurrentCultureMessage notification, CancellationToken cancellationToken)
|
||||
{
|
||||
var currentSettings = await GetItemAsync<UserSettings>(UserSettings.UserSettingsLocalStorageKey) ?? new UserSettings();
|
||||
var currentSettings = await ReadSettings();
|
||||
currentSettings.Culture = notification.CultureName;
|
||||
await SetItemAsync(UserSettings.UserSettingsLocalStorageKey, currentSettings);
|
||||
_navigationManager.NavigateTo(_navigationManager.Uri, forceLoad: true);
|
||||
}
|
||||
|
||||
public async Task Handle(ChangeCurrentRealmTypeMessage notification, CancellationToken cancellationToken)
|
||||
{
|
||||
var currentSettings = await ReadSettings();
|
||||
currentSettings.RealmType = notification.RealmType;
|
||||
await SetItemAsync(UserSettings.UserSettingsLocalStorageKey, currentSettings);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user