1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#![allow(clippy::module_name_repetitions)]
use hyperchad_transformer_models::AlignItems;
use maud::{Markup, html};
use moosicbox_session_models::ApiSession;
use crate::PLAYBACK_SESSIONS_CONTENT_ID;
#[must_use]
pub fn playback_sessions(sessions: &[ApiSession]) -> Markup {
html! {
div id=(PLAYBACK_SESSIONS_CONTENT_ID) {
@for session in sessions {
@let future_tracks = session.playlist.tracks.iter().skip(session.position.unwrap_or(0) as usize);
div {
h1 { (session.name) }
div {
@for track in future_tracks {
div sx-dir="row" {
@let icon_size = 50;
@let album_page_url = crate::albums::album_page_url(
&track.album_id.to_string(),
false,
Some(track.api_source),
Some(track.track_source),
track.sample_rate,
track.bit_depth,
);
a
href=(album_page_url)
sx-align-items=(AlignItems::Center)
sx-width=(icon_size)
sx-height=(icon_size)
{
(crate::albums::album_cover_img_from_track(track, icon_size))
}
(track.title)
}
}
}
}
}
}
}
}