fix empty pages
All checks were successful
tests / fmt (push) Successful in 1m16s
tests / build (push) Successful in 1m54s
tests / clippy (push) Successful in 1m50s
tests / pre-commit (push) Successful in 1m50s
tests / test (push) Successful in 2m13s
deploy / release-image (push) Successful in 5m34s
All checks were successful
tests / fmt (push) Successful in 1m16s
tests / build (push) Successful in 1m54s
tests / clippy (push) Successful in 1m50s
tests / pre-commit (push) Successful in 1m50s
tests / test (push) Successful in 2m13s
deploy / release-image (push) Successful in 5m34s
This commit is contained in:
@@ -59,9 +59,9 @@ pub(crate) async fn build_queue_embeds(queue: &[TrackHandle], page: usize) -> Ve
|
|||||||
}
|
}
|
||||||
message.push('\n');
|
message.push('\n');
|
||||||
|
|
||||||
let max_pages = queue.len() / TRACKS_PER_PAGE;
|
let n_pages = (queue.len() + TRACKS_PER_PAGE - 1) / TRACKS_PER_PAGE;
|
||||||
if max_pages > 0 {
|
if n_pages > 1 {
|
||||||
message.push_str(&format!("page {}/{}", 1 + page, 1 + max_pages));
|
message.push_str(&format!("page {}/{}", 1 + page, n_pages));
|
||||||
}
|
}
|
||||||
vec![EmbedBuilder::new()
|
vec![EmbedBuilder::new()
|
||||||
.description(&message)
|
.description(&message)
|
||||||
@@ -69,7 +69,7 @@ pub(crate) async fn build_queue_embeds(queue: &[TrackHandle], page: usize) -> Ve
|
|||||||
.build()]
|
.build()]
|
||||||
}
|
}
|
||||||
|
|
||||||
pub(crate) fn build_action_row(page: usize, max_pages: usize) -> Vec<Component> {
|
pub(crate) fn build_action_row(page: usize, n_pages: usize) -> Vec<Component> {
|
||||||
vec![Component::ActionRow(ActionRow {
|
vec![Component::ActionRow(ActionRow {
|
||||||
components: vec![
|
components: vec![
|
||||||
Component::Button(Button {
|
Component::Button(Button {
|
||||||
@@ -100,7 +100,7 @@ pub(crate) fn build_action_row(page: usize, max_pages: usize) -> Vec<Component>
|
|||||||
name: "➡️".to_string(),
|
name: "➡️".to_string(),
|
||||||
}),
|
}),
|
||||||
url: None,
|
url: None,
|
||||||
disabled: page >= max_pages,
|
disabled: page >= n_pages - 1,
|
||||||
}),
|
}),
|
||||||
],
|
],
|
||||||
})]
|
})]
|
||||||
@@ -146,7 +146,8 @@ pub(crate) async fn queue(
|
|||||||
}
|
}
|
||||||
|
|
||||||
let embeds = build_queue_embeds(&queue, 0).await;
|
let embeds = build_queue_embeds(&queue, 0).await;
|
||||||
let action_row = build_action_row(0, queue.len() / TRACKS_PER_PAGE);
|
let n_pages = (queue.len() + TRACKS_PER_PAGE - 1) / TRACKS_PER_PAGE;
|
||||||
|
let action_row = build_action_row(0, n_pages);
|
||||||
|
|
||||||
state
|
state
|
||||||
.http
|
.http
|
||||||
|
|||||||
@@ -147,8 +147,8 @@ impl Handler {
|
|||||||
let call = call_lock.lock().await;
|
let call = call_lock.lock().await;
|
||||||
queue = call.queue().current_queue();
|
queue = call.queue().current_queue();
|
||||||
}
|
}
|
||||||
let n_pages = queue.len() / TRACKS_PER_PAGE;
|
let n_pages = (queue.len() + TRACKS_PER_PAGE - 1) / TRACKS_PER_PAGE;
|
||||||
let page = page.min(n_pages).max(0);
|
let page = page.min(n_pages - 1).max(0);
|
||||||
let embeds = build_queue_embeds(&queue, page).await;
|
let embeds = build_queue_embeds(&queue, page).await;
|
||||||
let action_row = build_action_row(page, n_pages);
|
let action_row = build_action_row(page, n_pages);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user