"use client"; import { useState } from "react"; import { X, RefreshCw, CheckCircle, AlertCircle } from "lucide-react"; import { api } from "@/services/apiClient"; interface SettingsModalProps { isOpen: boolean; onClose: () => void; } export default function SettingsModal({ isOpen, onClose }: SettingsModalProps) { const [updating, setUpdating] = useState(false); const [status, setStatus] = useState<{ type: "success" | "error" | null; message: string }>({ type: null, message: "" }); if (!isOpen) return null; const handleUpdate = async (module: 'ytdlp' | 'spotdl') => { setUpdating(true); setStatus({ type: null, message: "" }); try { const endpoint = module === 'ytdlp' ? "/settings/update-ytdlp" : "/settings/update-spotdl"; await api.post(endpoint, {}); setStatus({ type: "success", message: `${module} updated! Server is restarting...` }); // Reload page after a delay to reflect restart setTimeout(() => { window.location.reload(); }, 5000); } catch (e: any) { console.error(e); // Debugging setStatus({ type: "error", message: e.message || "Update failed. Check console." }); } finally { setUpdating(false); } }; return (

Settings

Core Components

Update core libraries to fix playback or download issues.

{status.message && (
{status.type === "success" ? : }

{status.message}

)}
); }