pinakes-ui: integrate graph view; improve navigation via proper icons

Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I6d1d427f93b5293fc55cd5599ed02e696a6a6964
This commit is contained in:
raf 2026-02-09 13:15:15 +03:00
commit f396ce82af
Signed by: NotAShelf
GPG key ID: 29D95B64378DB4BF
2 changed files with 129 additions and 76 deletions

View file

@ -250,7 +250,7 @@ pub fn Detail(
title: media.title.clone(),
thumbnail_url: if has_thumbnail { Some(thumb_for_player.clone()) } else { None },
autoplay,
on_track_ended: on_track_ended,
on_track_ended,
}
} else if category == "video" {
MediaPlayer {
@ -258,7 +258,7 @@ pub fn Detail(
media_type: "video".to_string(),
title: media.title.clone(),
autoplay,
on_track_ended: on_track_ended,
on_track_ended,
}
} else if category == "image" {
if has_thumbnail {
@ -391,17 +391,25 @@ pub fn Detail(
if (category == "audio" || category == "video") && on_add_to_queue.is_some() {
{
// Check if this item is currently playing
let is_current = play_queue.as_ref()
let is_current = play_queue
.as_ref()
.and_then(|q| q.current())
.map(|item| item.media_id == id)
.unwrap_or(false);
let media_id_for_queue = id.clone();
let title_for_queue = media.title.clone().unwrap_or_else(|| media.file_name.clone());
let title_for_queue = media
.title
.clone()
.unwrap_or_else(|| media.file_name.clone());
let artist_for_queue = media.artist.clone();
let duration_for_queue = media.duration_secs;
let media_type_for_queue = category.to_string();
let stream_url_for_queue = stream_url.clone();
let thumbnail_for_queue = if has_thumbnail { Some(thumbnail_url.clone()) } else { None };
let thumbnail_for_queue = if has_thumbnail {
Some(thumbnail_url.clone())
} else {
None
};
let on_add = on_add_to_queue;
rsx! {
button {
@ -422,7 +430,11 @@ pub fn Detail(
handler.call(item);
}
},
if is_current { "\u{266b} Playing" } else { "\u{2795} Queue" }
if is_current {
"\u{266b} Playing"
} else {
"\u{2795} Queue"
}
}
}
}