Skip to content

fix(ui): confirm before deleting a track + artwork fallback on load error - #32

Merged
EnesYilmazcode merged 1 commit into
mainfrom
claude/funny-hawking-930hed
Jul 15, 2026
Merged

EnesYilmazcode merged 1 commit into
mainfrom
claude/funny-hawking-930hed

Conversation

@EnesYilmazcode

Copy link
Copy Markdown
Owner

Fixes #7. Fixes #13.

#7 — one-tap destructive delete

"Delete from library" permanently removed the track and its audio bytes on a single tap, sitting right below benign actions (Play next / Add to queue / Favorite) in the ⋯ sheet — a mis-tap was irreversible. Now routed through ConfirmModal (like delete-playlist already is): the track is only removed after an explicit confirm; Cancel leaves the sheet open and the track intact.

#13 — broken-image glyph on thumbnails

Artwork rendered a present thumbnail URL with no onError, so an expired/offline/deleted YouTube thumbnail showed the browser's broken-image glyph. Added onError to fall back to the existing deterministic gradient tile, resetting the flag when the URL changes (the component is reused across rows).

Verification

Built clean; behavioral test:

Check Result
Broken thumbnail → gradient placeholder, no <img> .artwork--ph=1, img=0 ✅
Delete → confirm dialog shows, track still present
Cancel → track intact
Confirm → track removed
page errors none ✅

🤖 Generated with Claude Code


Generated by Claude Code

…rror

#7: "Delete from library" permanently removed the track and its audio bytes on
a single tap, sitting right below benign actions in the ⋯ sheet — a mis-tap was
irreversible. Route it through ConfirmModal (as delete-playlist already does):
the track is only removed after an explicit confirm; Cancel leaves the sheet
open and the track intact.

#13: Artwork rendered a present thumbnail URL with no onError handler, so an
expired/offline/deleted YouTube thumbnail showed the browser's broken-image
glyph. Add onError to fall back to the existing deterministic gradient tile,
resetting the failure flag when the URL changes (the component is reused across
rows).

Verified in-browser: a broken thumbnail renders the gradient placeholder (no
img); delete shows a confirm dialog and only removes the track on confirm, not
on Cancel.

Fixes #7. Fixes #13.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FkDKh1Uo1a4D7n5wCKdcKF
@EnesYilmazcode
EnesYilmazcode merged commit c9d0c96 into main Jul 15, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants