feat(editor-app): 重构浏览器预览使用import maps

This commit is contained in:
yhh
2025-12-03 16:19:50 +08:00
parent 55f644a091
commit c2f8cb5272
50 changed files with 5995 additions and 1499 deletions

View File

@@ -1,17 +1,52 @@
//! Application state definitions
//! Application state definitions.
//! 应用状态定义。
//!
//! Centralized state management for the Tauri application.
//! Tauri 应用的集中状态管理。
use std::collections::HashMap;
use std::sync::{Arc, Mutex};
use tokio::sync::Mutex as TokioMutex;
use crate::profiler_ws::ProfilerServer;
/// Project paths state
/// Project paths state.
/// 项目路径状态。
///
/// Stores the current project path and other path-related information.
/// 存储当前项目路径和其他路径相关信息。
pub type ProjectPaths = Arc<Mutex<HashMap<String, String>>>;
/// Script watcher state.
/// 脚本监视器状态。
///
/// Manages file watchers for hot reload functionality.
/// 管理用于热重载功能的文件监视器。
pub struct ScriptWatcherState {
/// Active watchers keyed by project path | 按项目路径索引的活动监视器
pub watchers: Arc<TokioMutex<HashMap<String, WatcherHandle>>>,
}
/// Handle to a running file watcher.
/// 正在运行的文件监视器句柄。
pub struct WatcherHandle {
/// Shutdown signal sender | 关闭信号发送器
pub shutdown_tx: tokio::sync::oneshot::Sender<()>,
}
impl ScriptWatcherState {
pub fn new() -> Self {
Self {
watchers: Arc::new(TokioMutex::new(HashMap::new())),
}
}
}
impl Default for ScriptWatcherState {
fn default() -> Self {
Self::new()
}
}
/// Profiler server state
///
/// Manages the lifecycle of the WebSocket profiler server.