"use client"; import { useState } from "react"; import { SettingsSection, SettingsRow, SettingsInput, SettingsToggle } from "../ui"; import { SystemSettings } from "../../types"; import { InlineStatus, StatusType } from "@/components/ui/InlineStatus"; interface AIServicesSectionProps { settings: SystemSettings; onUpdate: (updates: Partial) => void; onTest: (service: string) => Promise<{ success: boolean; version?: string; error?: string }>; isTesting: boolean; } export function AIServicesSection({ settings, onUpdate, onTest, isTesting }: AIServicesSectionProps) { const [testStatus, setTestStatus] = useState("idle"); const [testMessage, setTestMessage] = useState(""); const handleTest = async () => { setTestStatus("loading"); setTestMessage("Testing..."); const result = await onTest("fanart"); if (result.success) { setTestStatus("success"); setTestMessage("Connected"); } else { setTestStatus("error"); setTestMessage(result.error || "Failed"); } }; return ( {/* Fanart.tv */} onUpdate({ fanartEnabled: checked })} /> {settings.fanartEnabled && ( <> onUpdate({ fanartApiKey: v })} placeholder="Enter Fanart.tv API key" className="w-64" />
setTestStatus("idle")} />
)}
); }