Implemented a settings page and settings provider.
This commit is contained in:
@@ -1,15 +1,19 @@
|
||||
using System.Runtime.Versioning;
|
||||
using System.Threading.Tasks;
|
||||
using Avalonia;
|
||||
using Avalonia;
|
||||
using Avalonia.Browser;
|
||||
using Progrart;
|
||||
using Progrart.Browser.Settings;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
internal sealed partial class Program
|
||||
{
|
||||
private static Task Main(string[] args) => BuildAvaloniaApp()
|
||||
.WithInterFont()
|
||||
.StartBrowserAppAsync("out");
|
||||
private static Task Main(string[] args)
|
||||
{
|
||||
App.SettingsProvider=new BrowserSettingsProvider();
|
||||
return BuildAvaloniaApp()
|
||||
.WithInterFont()
|
||||
.StartBrowserAppAsync("out");
|
||||
}
|
||||
|
||||
public static AppBuilder BuildAvaloniaApp()
|
||||
public static AppBuilder BuildAvaloniaApp()
|
||||
=> AppBuilder.Configure<App>();
|
||||
}
|
||||
29
Progrart.Browser/Settings/BrowserSettingsProvider.cs
Normal file
29
Progrart.Browser/Settings/BrowserSettingsProvider.cs
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user