From 89315fa530e1f21e2e50d94f955693b9413c98fe Mon Sep 17 00:00:00 2001 From: TheArcaneBrony Date: Wed, 25 Oct 2023 14:00:02 +0200 Subject: New things --- MatrixRoomUtils.Web/Pages/Dev/DevOptions.razor | 55 ++++++++++++++++++++++---- 1 file changed, 48 insertions(+), 7 deletions(-) (limited to 'MatrixRoomUtils.Web/Pages/Dev') diff --git a/MatrixRoomUtils.Web/Pages/Dev/DevOptions.razor b/MatrixRoomUtils.Web/Pages/Dev/DevOptions.razor index 9b0f61c..a1e928f 100644 --- a/MatrixRoomUtils.Web/Pages/Dev/DevOptions.razor +++ b/MatrixRoomUtils.Web/Pages/Dev/DevOptions.razor @@ -1,5 +1,8 @@ @page "/Dev/Options" @using ArcaneLibs.Extensions +@using System.Text.Unicode +@using System.Text +@using System.Text.Json @inject NavigationManager NavigationManager @inject ILocalStorageService LocalStorage @@ -8,23 +11,61 @@

Rory&::MatrixUtils - Developer options


-
-
-
+

+ Import local storage: + +

+

+ Export local storage: + +

+ +@if (userSettings is not null) { + + +
+ + +
+ + +
+}
@code { - MRUStorageWrapper.Settings settings { get; set; } = new(); + private MRUStorageWrapper.Settings? userSettings { get; set; } protected override async Task OnInitializedAsync() { - settings = await TieredStorage.DataStorageProvider.LoadObjectAsync("mru.settings"); + // userSettings = await TieredStorage.DataStorageProvider.LoadObjectAsync("mru.settings"); + await base.OnInitializedAsync(); } private async Task LogStuff() { await Task.Delay(100); - Console.WriteLine($"Settings: {settings.ToJson()}"); - await TieredStorage.DataStorageProvider.SaveObjectAsync("mru.settings", settings); + Console.WriteLine($"Settings: {userSettings.ToJson()}"); + await TieredStorage.DataStorageProvider.SaveObjectAsync("mru.settings", userSettings); + } + + private async Task ExportLocalStorage() { + var keys = await TieredStorage.DataStorageProvider.GetAllKeysAsync(); + var data = new Dictionary(); + foreach (var key in keys) { + data.Add(key, await TieredStorage.DataStorageProvider.LoadObjectAsync(key)); + } + var dataUri = "data:application/json;base64,"; + dataUri += Convert.ToBase64String(Encoding.UTF8.GetBytes(JsonSerializer.Serialize(data))); + await JSRuntime.InvokeVoidAsync("window.open", dataUri, "_blank"); + } + + private async Task ImportLocalStorage(InputFileChangeEventArgs obj) { + if (obj.FileCount != 1) return; + var data = await JsonSerializer.DeserializeAsync>(obj.File.OpenReadStream()); + foreach (var (key, value) in data) { + await TieredStorage.DataStorageProvider.SaveObjectAsync(key, value); + } + NavigationManager.NavigateTo(NavigationManager.Uri, true, true); } } -- cgit 1.5.1