mirror of
https://github.com/tauri-apps/plugins-workspace.git
synced 2026-04-21 11:26:15 +02:00
e5b07f4af2
* 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>
29 lines
882 B
Rust
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(())
|
|
}
|