chore(store): add AppSettings example (#573)

* basic example foundation

* add examples to workspace

* cleanup and load fix

* fmt

* reset lockfile

---------

Co-authored-by: FabianLars <fabianlars@fabianlars.de>
This commit is contained in:
Jarrodsz
2024-02-26 18:34:54 +01:00
committed by GitHub
parent 7c59242905
commit 382fc3a7bf
41 changed files with 790 additions and 489 deletions
@@ -0,0 +1,40 @@
// Prevents additional console window on Windows in release, DO NOT REMOVE!!
#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")]
use tauri_plugin_store::StoreBuilder;
mod app;
use app::settings::AppSettings;
fn main() {
tauri::Builder::default()
.plugin(tauri_plugin_store::Builder::default().build())
.setup(|app| {
// Init store and load it from disk
let mut store = StoreBuilder::new(app.handle(), "settings.json".parse()?).build();
// If there are no saved settings yet, this will return an error so we ignore the return value.
let _ = store.load();
let app_settings = AppSettings::load_from_store(&store);
match app_settings {
Ok(app_settings) => {
let theme = app_settings.theme;
let launch_at_login = app_settings.launch_at_login;
println!("theme {}", theme);
println!("launch_at_login {}", launch_at_login);
Ok(())
}
Err(err) => {
eprintln!("Error loading settings: {}", err);
// Handle the error case if needed
Err(err) // Convert the error to a Box<dyn Error> and return Err(err) here
}
}
})
.run(tauri::generate_context!())
.expect("error while running tauri application");
}