fix: 修复 Tauri 重构导致的配置读取与渲染问题
- 前端:始终绑定 ,避免环境判断失误造成白屏 - 后端: 仅初始化一次,并通过 注入,避免双实例不一致 - 配置: 兼容 回退,提高旧配置兼容性 - 结果:主页面数据正常加载,底部配置路径组件恢复显示
This commit is contained in:
@@ -12,7 +12,13 @@ pub fn get_claude_config_dir() -> PathBuf {
|
||||
|
||||
/// 获取 Claude Code 主配置文件路径
|
||||
pub fn get_claude_settings_path() -> PathBuf {
|
||||
get_claude_config_dir().join("settings.json")
|
||||
let dir = get_claude_config_dir();
|
||||
let settings = dir.join("settings.json");
|
||||
if settings.exists() {
|
||||
return settings;
|
||||
}
|
||||
// 兼容旧版命名:claude.json
|
||||
dir.join("claude.json")
|
||||
}
|
||||
|
||||
/// 获取应用配置目录路径 (~/.cc-switch)
|
||||
@@ -133,4 +139,4 @@ pub fn import_current_config_as_default() -> Result<Value, String> {
|
||||
|
||||
log::info!("已导入当前配置为默认供应商");
|
||||
Ok(settings_config)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ mod store;
|
||||
mod commands;
|
||||
|
||||
use store::AppState;
|
||||
use tauri::Manager;
|
||||
|
||||
#[cfg_attr(mobile, tauri::mobile_entry_point)]
|
||||
pub fn run() {
|
||||
@@ -18,7 +19,7 @@ pub fn run() {
|
||||
)?;
|
||||
}
|
||||
|
||||
// 初始化应用状态
|
||||
// 初始化应用状态(仅创建一次,并在本函数末尾注入 manage)
|
||||
let app_state = AppState::new();
|
||||
|
||||
// 如果没有供应商且存在 Claude Code 配置,自动导入
|
||||
@@ -51,9 +52,10 @@ pub fn run() {
|
||||
}
|
||||
}
|
||||
|
||||
// 将同一个实例注入到全局状态,避免重复创建导致的不一致
|
||||
app.manage(app_state);
|
||||
Ok(())
|
||||
})
|
||||
.manage(AppState::new())
|
||||
.invoke_handler(tauri::generate_handler![
|
||||
commands::get_providers,
|
||||
commands::get_current_provider,
|
||||
@@ -69,4 +71,4 @@ pub fn run() {
|
||||
])
|
||||
.run(tauri::generate_context!())
|
||||
.expect("error while running tauri application");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user