diff --git a/src-tauri/src/commands/skill.rs b/src-tauri/src/commands/skill.rs index 6b12850..3ed526c 100644 --- a/src-tauri/src/commands/skill.rs +++ b/src-tauri/src/commands/skill.rs @@ -56,26 +56,20 @@ pub async fn install_skill( if !skill.installed { let repo = SkillRepo { - owner: skill - .repo_owner - .clone() - .ok_or_else(|| { - format_skill_error( - "MISSING_REPO_INFO", - &[("directory", &directory), ("field", "owner")], - None, - ) - })?, - name: skill - .repo_name - .clone() - .ok_or_else(|| { - format_skill_error( - "MISSING_REPO_INFO", - &[("directory", &directory), ("field", "name")], - None, - ) - })?, + owner: skill.repo_owner.clone().ok_or_else(|| { + format_skill_error( + "MISSING_REPO_INFO", + &[("directory", &directory), ("field", "owner")], + None, + ) + })?, + name: skill.repo_name.clone().ok_or_else(|| { + format_skill_error( + "MISSING_REPO_INFO", + &[("directory", &directory), ("field", "name")], + None, + ) + })?, branch: skill .repo_branch .clone() diff --git a/src-tauri/src/error.rs b/src-tauri/src/error.rs index d9b0262..cd4cf3b 100644 --- a/src-tauri/src/error.rs +++ b/src-tauri/src/error.rs @@ -116,6 +116,6 @@ pub fn format_skill_error( serde_json::to_string(&error_obj).unwrap_or_else(|_| { // 如果 JSON 序列化失败,返回简单格式 - format!("ERROR:{}", code) + format!("ERROR:{code}") }) } diff --git a/src-tauri/src/services/skill.rs b/src-tauri/src/services/skill.rs index 1c06f73..1af2f47 100644 --- a/src-tauri/src/services/skill.rs +++ b/src-tauri/src/services/skill.rs @@ -490,7 +490,9 @@ impl SkillService { // 根据 skills_path 确定源目录路径 let source = if let Some(ref skills_path) = repo.skills_path { // 如果指定了 skills_path,源路径为: temp_dir/skills_path/directory - temp_dir.join(skills_path.trim_matches('/')).join(&directory) + temp_dir + .join(skills_path.trim_matches('/')) + .join(&directory) } else { // 否则源路径为: temp_dir/directory temp_dir.join(&directory) diff --git a/src/App.tsx b/src/App.tsx index d2179ca..b933d0b 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -58,7 +58,7 @@ function App() { const mcpPanelRef = useRef(null); const skillsPageRef = useRef(null); const addActionButtonClass = - "bg-primary hover:bg-primary/90 text-primary-foreground shadow-lg shadow-primary/20 rounded-full w-8 h-8"; + "bg-orange-500 hover:bg-orange-600 dark:bg-orange-500 dark:hover:bg-orange-600 text-white shadow-lg shadow-orange-500/30 dark:shadow-orange-500/40 rounded-full w-8 h-8"; const { data, isLoading, refetch } = useProvidersQuery(activeApp); const providers = useMemo(() => data?.providers ?? {}, [data]); @@ -281,7 +281,7 @@ function App() { return setCurrentView("providers")} />; default: return ( -
+
{renderContent()} @@ -554,8 +553,8 @@ function App() { message={ confirmDelete ? t("confirm.deleteProviderMessage", { - name: confirmDelete.name, - }) + name: confirmDelete.name, + }) : "" } onConfirm={() => void handleConfirmDelete()} diff --git a/src/components/AppSwitcher.tsx b/src/components/AppSwitcher.tsx index 9510811..5d9a7e4 100644 --- a/src/components/AppSwitcher.tsx +++ b/src/components/AppSwitcher.tsx @@ -13,28 +13,22 @@ export function AppSwitcher({ activeApp, onSwitch }: AppSwitcherProps) { }; return ( -
+
{/* 供应商图标 */} -
+
-
+