Add Claude Desktop official preset

- Add Claude Desktop Official to the Claude Desktop preset list.
- Treat selected official presets as official mode in the form.
- Cover the official preset with a preset-order regression test.
This commit is contained in:
Jason
2026-05-16 19:49:59 +08:00
parent 6172bfd549
commit c460a404dc
3 changed files with 27 additions and 1 deletions
@@ -296,7 +296,6 @@ export function ClaudeDesktopProviderForm({
showButtons = true, showButtons = true,
}: ClaudeDesktopProviderFormProps) { }: ClaudeDesktopProviderFormProps) {
const { t } = useTranslation(); const { t } = useTranslation();
const isOfficial = initialData?.category === "official";
const initialMode = initialData?.meta?.claudeDesktopMode ?? "direct"; const initialMode = initialData?.meta?.claudeDesktopMode ?? "direct";
const [mode, setMode] = useState<"direct" | "proxy">(initialMode); const [mode, setMode] = useState<"direct" | "proxy">(initialMode);
const needsModelMapping = mode === "proxy"; const needsModelMapping = mode === "proxy";
@@ -412,6 +411,9 @@ export function ClaudeDesktopProviderForm({
); );
const activeProviderType = const activeProviderType =
activePreset?.providerType ?? initialData?.meta?.providerType; activePreset?.providerType ?? initialData?.meta?.providerType;
const isOfficial =
initialData?.category === "official" ||
activePreset?.category === "official";
const usesManagedOAuth = const usesManagedOAuth =
activePreset?.requiresOAuth === true || activePreset?.requiresOAuth === true ||
activeProviderType === "github_copilot" || activeProviderType === "github_copilot" ||
@@ -134,6 +134,21 @@ const brandedRoutes = (
}; };
export const claudeDesktopProviderPresets: ClaudeDesktopProviderPreset[] = [ export const claudeDesktopProviderPresets: ClaudeDesktopProviderPreset[] = [
{
name: "Claude Desktop Official",
websiteUrl: "https://claude.ai/download",
category: "official",
baseUrl: "",
mode: "direct",
apiFormat: "anthropic",
theme: {
icon: "claude",
backgroundColor: "#D97757",
textColor: "#FFFFFF",
},
icon: "anthropic",
iconColor: "#D4915D",
},
{ {
name: "Shengsuanyun", name: "Shengsuanyun",
nameKey: "providerForm.presets.shengsuanyun", nameKey: "providerForm.presets.shengsuanyun",
+9
View File
@@ -37,6 +37,15 @@ describe("provider preset order", () => {
]); ]);
}); });
it("Claude Desktop 预设包含官方登录入口", () => {
expect(claudeDesktopProviderPresets[0]).toMatchObject({
name: "Claude Desktop Official",
category: "official",
baseUrl: "",
mode: "direct",
});
});
it("Codex 预设把 PatewayAI 放在胜算云后面", () => { it("Codex 预设把 PatewayAI 放在胜算云后面", () => {
expectInOrder(namesOf(codexProviderPresets), ["Shengsuanyun", "PatewayAI"]); expectInOrder(namesOf(codexProviderPresets), ["Shengsuanyun", "PatewayAI"]);
}); });