termix / src /settings /components /ProviderIcon.tsx
lekmikdok's picture
Prepare Terax for web deployment
50fe3c9 verified
Raw
History Blame Contribute Delete
941 Bytes
import type { ProviderId } from "@/modules/ai/config";
import {
ChatGptIcon,
ClaudeIcon,
ComputerIcon,
FlashIcon,
GoogleGeminiIcon,
Grok02Icon,
CpuIcon,
DeepseekIcon,
GlobeIcon,
PlugIcon,
} from "@hugeicons/core-free-icons";
import { HugeiconsIcon } from "@hugeicons/react";
const ICON_BY_PROVIDER = {
openai: ChatGptIcon,
anthropic: ClaudeIcon,
google: GoogleGeminiIcon,
xai: Grok02Icon,
cerebras: CpuIcon,
groq: FlashIcon,
deepseek: DeepseekIcon,
openrouter: GlobeIcon,
"openai-compatible": PlugIcon,
lmstudio: ComputerIcon,
} as const satisfies Record<ProviderId, typeof ChatGptIcon>;
type Props = {
provider: ProviderId;
size?: number;
className?: string;
};
export function ProviderIcon({ provider, size = 14, className }: Props) {
return (
<HugeiconsIcon
icon={ICON_BY_PROVIDER[provider]}
size={size}
strokeWidth={1.75}
className={className}
/>
);
}