From 13f2a70af2ca985f4fde84e41f68ecce43f3ef64 Mon Sep 17 00:00:00 2001 From: PJ Date: Sat, 20 Jun 2026 12:54:01 -0400 Subject: [PATCH] feat(io): add read_file/write_file commands and dialog capability --- src-tauri/capabilities/default.json | 3 ++- src-tauri/src/lib.rs | 8 +++++++- src-tauri/src/project.rs | 11 +++++++++++ 3 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 src-tauri/src/project.rs diff --git a/src-tauri/capabilities/default.json b/src-tauri/capabilities/default.json index 4cdbf49..778bfb5 100644 --- a/src-tauri/capabilities/default.json +++ b/src-tauri/capabilities/default.json @@ -5,6 +5,7 @@ "windows": ["main"], "permissions": [ "core:default", - "opener:default" + "opener:default", + "dialog:default" ] } diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index 53cb2b7..5dee648 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -1,10 +1,16 @@ mod pdf; +mod project; #[cfg_attr(mobile, tauri::mobile_entry_point)] pub fn run() { tauri::Builder::default() .plugin(tauri_plugin_opener::init()) - .invoke_handler(tauri::generate_handler![pdf::compile_pdf]) + .plugin(tauri_plugin_dialog::init()) + .invoke_handler(tauri::generate_handler![ + pdf::compile_pdf, + project::read_file, + project::write_file + ]) .run(tauri::generate_context!()) .expect("error while running margin"); } diff --git a/src-tauri/src/project.rs b/src-tauri/src/project.rs new file mode 100644 index 0000000..871c24b --- /dev/null +++ b/src-tauri/src/project.rs @@ -0,0 +1,11 @@ +use std::fs; + +#[tauri::command] +pub fn read_file(path: String) -> Result { + fs::read_to_string(&path).map_err(|e| e.to_string()) +} + +#[tauri::command] +pub fn write_file(path: String, contents: String) -> Result<(), String> { + fs::write(&path, contents).map_err(|e| e.to_string()) +}