use crate::error::Result; use tauri::{command, AppHandle, Manager, Runtime, State, WebviewWindow}; use tauri_plugin_dialog::{DialogExt, MessageDialogKind}; use yaak_crypto::manager::EncryptionManagerExt; use yaak_plugins::events::{GetThemesResponse, PluginWindowContext}; use yaak_plugins::manager::PluginManager; use yaak_plugins::native_template_functions::{ decrypt_secure_template_function, encrypt_secure_template_function, }; #[command] pub(crate) async fn cmd_show_workspace_key( window: WebviewWindow, workspace_id: &str, ) -> Result<()> { let key = window.crypto().reveal_workspace_key(workspace_id)?; window .dialog() .message(format!("Your workspace key is \n\n{}", key)) .kind(MessageDialogKind::Info) .show(|_v| {}); Ok(()) } #[command] pub(crate) async fn cmd_decrypt_template( window: WebviewWindow, template: &str, ) -> Result { let app_handle = window.app_handle(); let window_context = &PluginWindowContext::new(&window); Ok(decrypt_secure_template_function(&app_handle, window_context, template)?) } #[command] pub(crate) async fn cmd_secure_template( app_handle: AppHandle, window: WebviewWindow, template: &str, ) -> Result { let window_context = &PluginWindowContext::new(&window); Ok(encrypt_secure_template_function(&app_handle, window_context, template)?) } #[command] pub(crate) async fn cmd_get_themes( window: WebviewWindow, plugin_manager: State<'_, PluginManager>, ) -> Result> { Ok(plugin_manager.get_themes(&window).await?) }