mirror of
https://github.com/farion1231/cc-switch.git
synced 2026-07-25 13:45:03 +08:00
refactor(claude-desktop): trim duplication in proxy and switch flows
- services/proxy.rs: collapse 10 repeated `OpenCode | OpenClaw | Hermes | ClaudeDesktop` match arms into `_` fallthroughs. - claude_desktop_config.rs: extract a `with_rollback` closure shared by apply_provider_to_paths and restore_official_at_paths. - useProviderActions.ts: replace the triple-nested ternary picking the switch-success toast message with a flat let/if/else block. Net -36 lines. No behavior change; cargo test and pnpm typecheck pass.
This commit is contained in:
@@ -227,26 +227,21 @@ export function useProviderActions(
|
||||
|
||||
// 若已弹过 proxyRequired 警告则不再弹 success
|
||||
if (!proxyRequiredReason) {
|
||||
// OpenCode/OpenClaw: show "added to config" message instead of "switched"
|
||||
const isMultiProviderApp =
|
||||
activeApp === "opencode" || activeApp === "openclaw";
|
||||
const messageKey =
|
||||
activeApp === "claude-desktop"
|
||||
? provider.meta?.claudeDesktopMode === "proxy"
|
||||
? "notifications.claudeDesktopProxyRestartRequired"
|
||||
: "notifications.claudeDesktopRestartRequired"
|
||||
: isMultiProviderApp
|
||||
? "notifications.addToConfigSuccess"
|
||||
: "notifications.switchSuccess";
|
||||
const defaultMessage =
|
||||
activeApp === "claude-desktop"
|
||||
? provider.meta?.claudeDesktopMode === "proxy"
|
||||
? "切换成功,请保持 CC Switch 运行,并重启 Claude Desktop 后生效"
|
||||
: "切换成功,重启 Claude Desktop 后生效"
|
||||
: isMultiProviderApp
|
||||
? "已添加到配置"
|
||||
: "切换成功!";
|
||||
|
||||
let messageKey = "notifications.switchSuccess";
|
||||
let defaultMessage = "切换成功!";
|
||||
if (activeApp === "claude-desktop") {
|
||||
if (provider.meta?.claudeDesktopMode === "proxy") {
|
||||
messageKey = "notifications.claudeDesktopProxyRestartRequired";
|
||||
defaultMessage =
|
||||
"切换成功,请保持 CC Switch 运行,并重启 Claude Desktop 后生效";
|
||||
} else {
|
||||
messageKey = "notifications.claudeDesktopRestartRequired";
|
||||
defaultMessage = "切换成功,重启 Claude Desktop 后生效";
|
||||
}
|
||||
} else if (activeApp === "opencode" || activeApp === "openclaw") {
|
||||
messageKey = "notifications.addToConfigSuccess";
|
||||
defaultMessage = "已添加到配置";
|
||||
}
|
||||
toast.success(t(messageKey, { defaultValue: defaultMessage }), {
|
||||
closeButton: true,
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user