Implemented a settings page and settings provider.

This commit is contained in:
Creeper Lv
2026-01-18 03:14:22 +11:00
parent 6dff9b8718
commit 365be0474a
11 changed files with 224 additions and 16 deletions

View File

@@ -0,0 +1,29 @@
using Progrart.Core.Settings;
using System.Runtime.InteropServices.JavaScript;
using System.Text.Json;
namespace Progrart.Browser.Settings
{
public partial class BrowserSettingsProvider : ISettingsProvider
{
private SerializeContext context=new SerializeContext();
[JSImport("globalThis.localStorage.setItem")]
private static partial void SetItem(string key, string value);
[JSImport("globalThis.localStorage.getItem")]
private static partial string GetItem(string key);
public AppConfig LoadSettings()
{
var json = GetItem("progrart.settings");
return json != null
? JsonSerializer.Deserialize<AppConfig>(json,context.AppConfig)??new AppConfig()
: new AppConfig();
}
public void SaveSettings(AppConfig config)
{
var json = JsonSerializer.Serialize(config,context.AppConfig)??"";
SetItem("progrart.settings", json);
}
}
}