feat(discover): Not interested menu action with live removal + backfill
ArtistGridCard's context menu gains a 4th item (Not interested,
thumbs-down icon; popup height bumped for the extra row) that emits
("artist", id, "not-interested") through the existing media-action
chain. The new central arm persists the dismissal to the reco_dismiss
store and, when the artist is in a reco rail, removes the card live and
backfills the freed slot from the rail's retained overflow (already
Qobuz-validated — no network; the pop re-checks live exclusions and
cross-rail visibility). Dismissed from a non-reco surface, the display
name is resolved via get_artist before persisting, so the management
list and toast still read well.
km
This commit is contained in:
3 files changed
+183
-1
No files matched your search
@@ -203,7 +203,7 @@ export component ArtistGridCard inherits Rectangle {
|
||||
x: 21px;
|
||||
y: 143px;
|
||||
width: 196px;
|
||||
height: 3 * 33px + 10px;
|
||||
height: 4 * 33px + 10px;
|
||||
ContextMenu {
|
||||
ContextMenuItem {
|
||||
icon: @image-url("../assets/icons/user.svg");
|
||||
@@ -228,6 +228,15 @@ export component ArtistGridCard inherits Rectangle {
|
||||
root.media-action(root.follow-kind, root.artist.id, "follow");
|
||||
}
|
||||
}
|
||||
// Reco-scoped dismissal (NOT the blacklist): the artist
|
||||
// leaves the Recommendations rails only.
|
||||
ContextMenuItem {
|
||||
icon: @image-url("../assets/icons/thumbs-down.svg");
|
||||
label: @tr("Not interested");
|
||||
clicked => {
|
||||
root.media-action("artist", root.artist.id, "not-interested");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user