From 8e3758c254ca13ab2dd1d0fc611746e5deb62b3d Mon Sep 17 00:00:00 2001 From: Lol3rrr Date: Thu, 10 Oct 2024 16:35:35 +0200 Subject: [PATCH] Some minor styles and add very basic sorting support --- frontend/src/demo/heatmap.rs | 2 +- frontend/src/demo/scoreboard.rs | 41 +++++++++++++++++++++++++++------ 2 files changed, 35 insertions(+), 8 deletions(-) diff --git a/frontend/src/demo/heatmap.rs b/frontend/src/demo/heatmap.rs index 76fa11f..1c0a1d5 100644 --- a/frontend/src/demo/heatmap.rs +++ b/frontend/src/demo/heatmap.rs @@ -56,7 +56,7 @@ fn heatmap_view(heatmaps: Vec) -> impl lep "Heatmap-View", .heatmap_image { width: 1024px; - height: 1024px; + height: min(70vw, 70vh); display: block; position: relative; } diff --git a/frontend/src/demo/scoreboard.rs b/frontend/src/demo/scoreboard.rs index ee6b8fb..b10b0e8 100644 --- a/frontend/src/demo/scoreboard.rs +++ b/frontend/src/demo/scoreboard.rs @@ -24,14 +24,29 @@ pub fn scoreboard() -> impl leptos::IntoView { Loading Scoreboard data

} > - - + +
} } +fn damage_sorting(p1: &common::demo_analysis::ScoreBoardPlayer, p2: &common::demo_analysis::ScoreBoardPlayer) -> core::cmp::Ordering { + p2.damage.cmp(&p1.damage) +} +fn kill_sorting(p1: &common::demo_analysis::ScoreBoardPlayer, p2: &common::demo_analysis::ScoreBoardPlayer) -> core::cmp::Ordering { + p2.kills.cmp(&p1.kills) +} +fn assists_sorting(p1: &common::demo_analysis::ScoreBoardPlayer, p2: &common::demo_analysis::ScoreBoardPlayer) -> core::cmp::Ordering { + p2.assists.cmp(&p1.assists) +} +fn deaths_sorting(p1: &common::demo_analysis::ScoreBoardPlayer, p2: &common::demo_analysis::ScoreBoardPlayer) -> core::cmp::Ordering { + p2.deaths.cmp(&p1.deaths) +} + #[leptos::component] fn team_scoreboard(info: Resource, team_name: String, part: fn(common::demo_analysis::ScoreBoard) -> Vec) -> impl IntoView { + let (ordering, set_ordering) = create_signal:: core::cmp::Ordering>(damage_sorting); + let style = stylers::style! { "Team-Scoreboard", tr:nth-child(even) { @@ -54,15 +69,27 @@ fn team_scoreboard(info: Resource Name - Kills - Assists - Deaths - Damage + Kills + Assists + Deaths + Damage { move || { let value = info.get().map(|v| part(v)); - (value).into_iter().flat_map(|v| v).map(|s| { + let mut players: Vec<_> = value.into_iter().flat_map(|v| v).collect(); + let sorting = ordering.get(); + players.sort_unstable_by(|p1, p2| sorting(p1, p2)); + + players.into_iter().map(|s| { view! { class=style, { s.name }{ s.kills }{ s.assists }{ s.deaths }{ s.damage }