"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 () => { setUpdating(true); setStatus({ type: null, message: "" }); try { await api.post("/settings/update-ytdlp", {}); setStatus({ type: "success", message: "Update successful! Server is restarting..." }); // Reload page after a delay to reflect restart setTimeout(() => { window.location.reload(); }, 5000); } catch (e: any) { setStatus({ type: "error", message: e.message || "Update failed" }); } finally { setUpdating(false); } }; return (

Settings

Core Components

Update the core playback library (yt-dlp) to the latest version to fix playback issues.

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

{status.message}

)}
); }