import { useMutation, useQueryClient } from "@tanstack/react-query"; import { useState } from "react"; import { playlistsApi } from "../lib/api"; import { Modal } from "./Modal"; export function CreatePlaylistModal({ open, onClose, onCreated, }: { open: boolean; onClose: () => void; onCreated?: (id: string) => void; }) { const qc = useQueryClient(); const [form, setForm] = useState<{ title: string; description: string; visibility: "public" | "unlisted" | "private"; }>({ title: "", description: "", visibility: "private" }); const [error, setError] = useState(""); const create = useMutation({ mutationFn: () => playlistsApi.create({ title: form.title, description: form.description || null, visibility: form.visibility, }), onSuccess: (pl) => { void qc.invalidateQueries({ queryKey: ["library"] }); void qc.invalidateQueries({ queryKey: ["my-playlists"] }); setForm({ title: "", description: "", visibility: "private" }); onCreated?.(pl.id); onClose(); }, onError: (e: any) => setError(e?.response?.data?.error ?? "Ошибка"), }); return (
setForm({ ...form, title: e.target.value })} placeholder="Мой плейлист" />