Files
tauri-plugins-workspace/plugins/window-state/src/cmd.rs
T
Amr Bashir e5b07f4af2 feat(window-state): add js api, closes #254 (#309)
* feat(window-state): add js api, closes #254

* symlink tsconfig.json

* update symlink

* Update plugins/window-state/package.json

Co-authored-by: Fabian-Lars <fabianlars@fabianlars.de>

* Update Cargo.toml

* move to cmd.rs

* Update plugins/window-state/guest-js/index.ts

---------

Co-authored-by: Fabian-Lars <fabianlars@fabianlars.de>
2023-04-17 17:31:36 +02:00

29 lines
882 B
Rust

use crate::{AppHandleExt, StateFlags, WindowExt};
use tauri::{command, AppHandle, Manager, Runtime};
#[command]
pub async fn save_window_state<R: Runtime>(
app: AppHandle<R>,
flags: u32,
) -> std::result::Result<(), String> {
let flags = StateFlags::from_bits(flags)
.ok_or_else(|| format!("Invalid state flags bits: {}", flags))?;
app.save_window_state(flags).map_err(|e| e.to_string())?;
Ok(())
}
#[command]
pub async fn restore_state<R: Runtime>(
app: AppHandle<R>,
label: String,
flags: u32,
) -> std::result::Result<(), String> {
let flags = StateFlags::from_bits(flags)
.ok_or_else(|| format!("Invalid state flags bits: {}", flags))?;
app.get_window(&label)
.ok_or_else(|| format!("Couldn't find window with label: {}", label))?
.restore_state(flags)
.map_err(|e| e.to_string())?;
Ok(())
}