fix(web): surface a toast on failed mutations (#14)
Several client mutations either ignored a non-ok response (silent no-op) or toasted success unconditionally even when the request failed. Sweep them so every mutation gives feedback: - artists: toggle auto-monitor, unfollow → error toast on failure. - discography + wanted: toggle monitor / search-now → success or error toast. - discover suggestion follow/want/dismiss → error toast (was toasting success even on failure). - The Floor: queue request + retry → error toast on failure. - artist-modal + preview follow/want, Last.fm want → error toast on failure (closes the deferred "want() shows no toast on non-ok" item). web 153 tests, tsc + build clean. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -95,16 +95,18 @@ export function ArtistsClient() {
|
||||
}
|
||||
|
||||
async function toggleAuto(a: Artist) {
|
||||
await fetch(`/api/artists/${a.id}`, {
|
||||
const res = await fetch(`/api/artists/${a.id}`, {
|
||||
method: "PATCH",
|
||||
headers: { "content-type": "application/json" },
|
||||
body: JSON.stringify({ autoMonitorFuture: !a.autoMonitorFuture }),
|
||||
});
|
||||
}).catch(() => null);
|
||||
if (!res?.ok) toast(`Couldn't update ${a.name}`);
|
||||
refresh();
|
||||
}
|
||||
|
||||
async function unfollow(a: Artist) {
|
||||
await fetch(`/api/artists/${a.id}`, { method: "DELETE" });
|
||||
const res = await fetch(`/api/artists/${a.id}`, { method: "DELETE" }).catch(() => null);
|
||||
if (!res?.ok) toast(`Couldn't unfollow ${a.name}`);
|
||||
refresh();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user