import React from 'react'; import { Switch } from '~/components/ui/Switch'; import { Card, CardContent } from '~/components/ui/Card'; import { Link, Server, Monitor, Globe } from 'lucide-react'; import { classNames } from '~/utils/classNames'; import type { IProviderConfig } from '~/types/model'; import { PROVIDER_DESCRIPTIONS } from './types'; // Provider Card Component interface ProviderCardProps { provider: IProviderConfig; onToggle: (enabled: boolean) => void; onUpdateBaseUrl: (url: string) => void; isEditing: boolean; onStartEditing: () => void; onStopEditing: () => void; } function ProviderCard({ provider, onToggle, onUpdateBaseUrl, isEditing, onStartEditing, onStopEditing, }: ProviderCardProps) { const getIcon = (providerName: string) => { switch (providerName) { case 'Ollama': return Server; case 'LMStudio': return Monitor; case 'OpenAILike': return Globe; default: return Server; } }; const Icon = getIcon(provider.name); return (

{provider.name}

Local

{PROVIDER_DESCRIPTIONS[provider.name as keyof typeof PROVIDER_DESCRIPTIONS]}

{provider.settings.enabled && (
{isEditing ? ( { if (e.key === 'Enter') { onUpdateBaseUrl(e.currentTarget.value); onStopEditing(); } else if (e.key === 'Escape') { onStopEditing(); } }} onBlur={(e) => { onUpdateBaseUrl(e.target.value); onStopEditing(); }} autoFocus /> ) : ( )}
)}
); } export default ProviderCard;