wip
This commit is contained in:
7
.vscode/settings.json
vendored
7
.vscode/settings.json
vendored
@ -1,4 +1,5 @@
|
||||
{
|
||||
"biome.enabled": true,
|
||||
"editor.defaultFormatter": "biomejs.biome",
|
||||
"[typescript]": {
|
||||
"editor.defaultFormatter": "biomejs.biome"
|
||||
@ -6,5 +7,9 @@
|
||||
"[typescriptreact]": {
|
||||
"editor.defaultFormatter": "biomejs.biome"
|
||||
},
|
||||
"editor.formatOnSave": true
|
||||
"editor.formatOnSave": true,
|
||||
"[rust]": {
|
||||
"editor.defaultFormatter": "rust-lang.rust-analyzer"
|
||||
},
|
||||
"rust-analyzer.linkedProjects": ["./frontend/src-tauri/Cargo.toml"]
|
||||
}
|
||||
|
@ -1,15 +1,14 @@
|
||||
use std::path::PathBuf;
|
||||
use base64::{engine::general_purpose::STANDARD as BASE64, Engine as _};
|
||||
use notify::{Config, RecommendedWatcher, RecursiveMode, Watcher};
|
||||
use tauri::Emitter;
|
||||
use std::sync::mpsc::channel;
|
||||
use std::fs;
|
||||
use base64::{Engine as _, engine::general_purpose::STANDARD as BASE64};
|
||||
use std::sync::Mutex;
|
||||
use std::path::PathBuf;
|
||||
use std::sync::mpsc::channel;
|
||||
use std::sync::Arc;
|
||||
use std::sync::Mutex;
|
||||
use tauri::AppHandle;
|
||||
use tauri::Emitter;
|
||||
use tauri::{TitleBarStyle, WebviewUrl, WebviewWindowBuilder};
|
||||
|
||||
|
||||
struct WatcherState {
|
||||
watcher: Option<RecommendedWatcher>,
|
||||
}
|
||||
@ -25,8 +24,7 @@ fn process_png_file(path: &PathBuf, app: AppHandle) -> Result<(), String> {
|
||||
println!("Processing PNG file: {}", path.display());
|
||||
|
||||
// Read the file
|
||||
let contents = fs::read(path)
|
||||
.map_err(|e| format!("Failed to read file: {}", e))?;
|
||||
let contents = fs::read(path).map_err(|e| format!("Failed to read file: {}", e))?;
|
||||
|
||||
// Convert to base64
|
||||
let base64_string = BASE64.encode(&contents);
|
||||
@ -53,20 +51,21 @@ async fn handle_selected_folder(
|
||||
}
|
||||
|
||||
// Stop existing watcher if any
|
||||
let mut state = state.lock().map_err(|_| "Failed to lock state".to_string())?;
|
||||
let mut state = state
|
||||
.lock()
|
||||
.map_err(|_| "Failed to lock state".to_string())?;
|
||||
state.watcher = None;
|
||||
|
||||
// Create a channel to receive file system events
|
||||
let (tx, rx) = channel();
|
||||
|
||||
// Create a new watcher
|
||||
let mut watcher = RecommendedWatcher::new(
|
||||
tx,
|
||||
Config::default(),
|
||||
).map_err(|e| format!("Failed to create watcher: {}", e))?;
|
||||
let mut watcher = RecommendedWatcher::new(tx, Config::default())
|
||||
.map_err(|e| format!("Failed to create watcher: {}", e))?;
|
||||
|
||||
// Start watching the directory
|
||||
watcher.watch(path_buf.as_ref(), RecursiveMode::Recursive)
|
||||
watcher
|
||||
.watch(path_buf.as_ref(), RecursiveMode::Recursive)
|
||||
.map_err(|e| format!("Failed to watch directory: {}", e))?;
|
||||
|
||||
// Store the watcher in state
|
||||
@ -114,8 +113,7 @@ pub fn run() {
|
||||
.manage(watcher_state)
|
||||
.invoke_handler(tauri::generate_handler![handle_selected_folder])
|
||||
.setup(|app| {
|
||||
let win_builder =
|
||||
WebviewWindowBuilder::new(app, "main", WebviewUrl::default())
|
||||
let win_builder = WebviewWindowBuilder::new(app, "main", WebviewUrl::default())
|
||||
.hidden_title(true)
|
||||
.inner_size(480.0, 360.0)
|
||||
.resizable(false);
|
||||
|
Reference in New Issue
Block a user