"use client"; import { useState } from "react"; import { SettingsSection, SettingsRow, SettingsInput } from "../ui"; import { SystemSettings } from "../../types"; import { ExternalLink } from "lucide-react"; import { InlineStatus, StatusType } from "@/components/ui/InlineStatus"; interface SoulseekSectionProps { settings: SystemSettings; onUpdate: (updates: Partial) => void; onTest: (service: string) => Promise<{ success: boolean; version?: string; error?: string }>; isTesting: boolean; } export function SoulseekSection({ settings, onUpdate, onTest, isTesting }: SoulseekSectionProps) { const [testStatus, setTestStatus] = useState("idle"); const [testMessage, setTestMessage] = useState(""); const handleTest = async () => { setTestStatus("loading"); setTestMessage("Connecting..."); const result = await onTest("soulseek"); if (result.success) { setTestStatus("success"); setTestMessage("Connected to Soulseek"); } else { setTestStatus("error"); setTestMessage(result.error || "Connection failed"); } }; const hasCredentials = settings.soulseekUsername && settings.soulseekPassword; return ( Your Soulseek account username Create Account } > onUpdate({ soulseekUsername: v })} placeholder="your_username" className="w-64" /> onUpdate({ soulseekPassword: v })} placeholder="your_password" className="w-64" />
setTestStatus("idle")} />

Downloads will be saved to your Singles folder automatically

); }