diff --git a/src/components/ProviderForm.tsx b/src/components/ProviderForm.tsx index 855ff02..5cea1a5 100644 --- a/src/components/ProviderForm.tsx +++ b/src/components/ProviderForm.tsx @@ -15,7 +15,7 @@ import ApiKeyInput from "./ProviderForm/ApiKeyInput"; import ClaudeConfigEditor from "./ProviderForm/ClaudeConfigEditor"; import CodexConfigEditor from "./ProviderForm/CodexConfigEditor"; import KimiModelSelector from "./ProviderForm/KimiModelSelector"; -import { X, AlertCircle } from "lucide-react"; +import { X, AlertCircle, Save } from "lucide-react"; // 分类仅用于控制少量交互(如官方禁用 API Key),不显示介绍组件 interface ProviderFormProps { @@ -936,8 +936,9 @@ const ProviderForm: React.FC = ({ diff --git a/src/components/ProviderForm/PresetSelector.tsx b/src/components/ProviderForm/PresetSelector.tsx index e05e4b1..1d02c93 100644 --- a/src/components/ProviderForm/PresetSelector.tsx +++ b/src/components/ProviderForm/PresetSelector.tsx @@ -1,6 +1,7 @@ import React from "react"; import { Zap } from "lucide-react"; import { ProviderCategory } from "../../types"; +import { ClaudeIcon, CodexIcon } from "../BrandIcons"; interface Preset { name: string; @@ -27,17 +28,22 @@ const PresetSelector: React.FC = ({ }) => { const getButtonClass = ( index: number, - isOfficial?: boolean, - category?: ProviderCategory, + preset?: Preset, ) => { const isSelected = selectedIndex === index; const baseClass = "inline-flex items-center gap-2 px-4 py-2 rounded-lg text-sm font-medium transition-colors"; if (isSelected) { - return isOfficial || category === "official" - ? `${baseClass} bg-amber-500 text-white` - : `${baseClass} bg-blue-500 text-white`; + if (preset?.isOfficial || preset?.category === "official") { + // Codex 官方使用黑色背景 + if (preset?.name.includes("Codex")) { + return `${baseClass} bg-gray-900 text-white`; + } + // Claude 官方使用品牌色背景 + return `${baseClass} bg-[#D97757] text-white`; + } + return `${baseClass} bg-blue-500 text-white`; } return `${baseClass} bg-gray-100 text-gray-500 hover:bg-gray-200`; @@ -76,15 +82,19 @@ const PresetSelector: React.FC = ({