diff --git a/app/app/components/edit-song-sheet.tsx b/app/app/components/edit-song-sheet.tsx index 2c91ddc..eb3d3aa 100644 --- a/app/app/components/edit-song-sheet.tsx +++ b/app/app/components/edit-song-sheet.tsx @@ -1,4 +1,4 @@ -import { useState } from "react"; +import { useEffect, useState } from "react"; import { Sheet, SheetContent, SheetHeader, SheetTitle, } from "~/components/ui/sheet"; @@ -22,6 +22,14 @@ export function EditSongSheet({ id, meta, open, onOpenChange, onUpdated }: Props const [key, setKey] = useState(meta.original_key ?? ""); const [loading, setLoading] = useState(false); + useEffect(() => { + if (open) { + setTitle(meta.title); + setArtist(meta.artist); + setKey(meta.original_key ?? ""); + } + }, [open, meta.title, meta.artist, meta.original_key]); + async function handleSubmit(e: React.FormEvent) { e.preventDefault(); setLoading(true); diff --git a/app/app/lib/api.ts b/app/app/lib/api.ts index 0a5230d..c0feec4 100644 --- a/app/app/lib/api.ts +++ b/app/app/lib/api.ts @@ -44,7 +44,8 @@ export async function createSong(body: { } export async function deleteSong(id: string): Promise { - await fetch(`${getApiBase()}/songs/${id}`, { method: "DELETE" }); + const res = await fetch(`${getApiBase()}/songs/${id}`, { method: "DELETE" }); + if (!res.ok) throw new Error(`Failed to delete song: HTTP ${res.status}`); } export async function updateSong(id: string, patch: UpdateSongRequest): Promise {