import { PROVIDERS } from "@/constants/models"; import { Card, CardHeader, CardTitle, CardDescription, } from "@/components/ui/card"; import { useNavigate } from "@tanstack/react-router"; import { providerSettingsRoute } from "@/routes/settings/providers/$provider"; import type { ModelProvider } from "@/lib/schemas"; import { useSettings } from "@/hooks/useSettings"; import { GiftIcon } from "lucide-react"; interface ProviderSettingsProps { configuredProviders?: ModelProvider[]; } export function ProviderSettingsGrid({ configuredProviders = [], }: ProviderSettingsProps) { const navigate = useNavigate(); const handleProviderClick = (provider: ModelProvider) => { navigate({ to: providerSettingsRoute.id, params: { provider }, }); }; const { isProviderSetup } = useSettings(); return (

AI Providers

{Object.entries(PROVIDERS).map(([key, provider]) => { const isConfigured = configuredProviders.includes( key as ModelProvider, ); return ( handleProviderClick(key as ModelProvider)} > {provider.displayName} {isProviderSetup(key) ? ( Ready ) : ( Needs Setup )} {provider.hasFreeTier && ( Free tier available )} ); })}
); }