diff options
author | Rory& <root@rory.gay> | 2024-01-24 02:31:56 +0100 |
---|---|---|
committer | Rory& <root@rory.gay> | 2024-01-24 17:05:25 +0100 |
commit | 03313562d21d5db9bf6a14ebbeab80e06c883d3a (patch) | |
tree | e000546a2ee8e6a886a7ed9fd01ad674178fb7cb /MatrixUtils.Web/Pages/Dev/DevOptions.razor | |
parent | Make RMU installable (diff) | |
download | MatrixUtils-03313562d21d5db9bf6a14ebbeab80e06c883d3a.tar.xz |
MRU->RMU, fixes, cleanup
Diffstat (limited to 'MatrixUtils.Web/Pages/Dev/DevOptions.razor')
-rw-r--r-- | MatrixUtils.Web/Pages/Dev/DevOptions.razor | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/MatrixUtils.Web/Pages/Dev/DevOptions.razor b/MatrixUtils.Web/Pages/Dev/DevOptions.razor new file mode 100644 index 0000000..6ca0b53 --- /dev/null +++ b/MatrixUtils.Web/Pages/Dev/DevOptions.razor @@ -0,0 +1,71 @@ +@page "/Dev/Options" +@using ArcaneLibs.Extensions +@using System.Text.Unicode +@using System.Text +@using System.Text.Json +@inject NavigationManager NavigationManager +@inject ILocalStorageService LocalStorage + +<PageTitle>Developer options</PageTitle> + +<h3>Rory&::MatrixUtils - Developer options</h3> +<hr/> + +<p> + <span>Import local storage: </span> + <InputFile OnChange="ImportLocalStorage"></InputFile> +</p> +<p> + <span>Export local storage: </span> + <button @onclick="@ExportLocalStorage">Export</button> +</p> + +@if (userSettings is not null) { + <InputCheckbox @bind-Value="@userSettings.DeveloperSettings.EnableLogViewers" @oninput="@LogStuff"></InputCheckbox> + <label> Enable log views</label> + <br/> + <InputCheckbox @bind-Value="@userSettings.DeveloperSettings.EnableConsoleLogging" @oninput="@LogStuff"></InputCheckbox> + <label> Enable console logging</label> + <br/> + <InputCheckbox @bind-Value="@userSettings.DeveloperSettings.EnablePortableDevtools" @oninput="@LogStuff"></InputCheckbox> + <label> Enable portable devtools</label> + <br/> +} +<br/> + +@code { + + private RMUStorageWrapper.Settings? userSettings { get; set; } + protected override async Task OnInitializedAsync() { + // userSettings = await TieredStorage.DataStorageProvider.LoadObjectAsync<RMUStorageWrapper.Settings>("rmu.settings"); + + await base.OnInitializedAsync(); + } + + private async Task LogStuff() { + await Task.Delay(100); + Console.WriteLine($"Settings: {userSettings.ToJson()}"); + await TieredStorage.DataStorageProvider.SaveObjectAsync("rmu.settings", userSettings); + } + + private async Task ExportLocalStorage() { + var keys = await TieredStorage.DataStorageProvider.GetAllKeysAsync(); + var data = new Dictionary<string, object>(); + foreach (var key in keys) { + data.Add(key, await TieredStorage.DataStorageProvider.LoadObjectAsync<object>(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<Dictionary<string, object>>(obj.File.OpenReadStream()); + foreach (var (key, value) in data) { + await TieredStorage.DataStorageProvider.SaveObjectAsync(key, value); + } + NavigationManager.NavigateTo(NavigationManager.Uri, true, true); + } + +} |