Formatting and minor code changes
This commit is contained in:
@@ -2,8 +2,8 @@ use leptos::*;
|
||||
use leptos_router::{Outlet, A};
|
||||
|
||||
pub mod heatmap;
|
||||
pub mod scoreboard;
|
||||
pub mod perround;
|
||||
pub mod scoreboard;
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
struct CurrentDemoName(ReadSignal<String>);
|
||||
@@ -31,10 +31,10 @@ pub fn demo() -> impl leptos::IntoView {
|
||||
},
|
||||
);
|
||||
|
||||
let rerun_analysis = create_action(move |_: &()| {
|
||||
async move {
|
||||
let _ = reqwasm::http::Request::get(&format!("/api/demos/{}/reanalyse", id())).send().await;
|
||||
}
|
||||
let rerun_analysis = create_action(move |_: &()| async move {
|
||||
let _ = reqwasm::http::Request::get(&format!("/api/demos/{}/reanalyse", id()))
|
||||
.send()
|
||||
.await;
|
||||
});
|
||||
|
||||
let map = move || match demo_info.get() {
|
||||
|
||||
@@ -4,19 +4,17 @@ use super::CurrentDemoName;
|
||||
|
||||
#[leptos::component]
|
||||
pub fn heatmaps() -> impl leptos::IntoView {
|
||||
let heatmaps_resource =
|
||||
create_resource(leptos_router::use_params_map(), |params| async move {
|
||||
let id = params.get("id").unwrap();
|
||||
let heatmaps_resource = create_resource(leptos_router::use_params_map(), |params| async move {
|
||||
let id = params.get("id").unwrap();
|
||||
|
||||
let res =
|
||||
reqwasm::http::Request::get(&format!("/api/demos/{}/analysis/heatmap", id))
|
||||
.send()
|
||||
.await
|
||||
.unwrap();
|
||||
res.json::<Vec<common::demo_analysis::PlayerHeatmap>>()
|
||||
.await
|
||||
.unwrap()
|
||||
});
|
||||
let res = reqwasm::http::Request::get(&format!("/api/demos/{}/analysis/heatmap", id))
|
||||
.send()
|
||||
.await
|
||||
.unwrap();
|
||||
res.json::<Vec<common::demo_analysis::PlayerHeatmap>>()
|
||||
.await
|
||||
.unwrap()
|
||||
});
|
||||
|
||||
let style = stylers::style! {
|
||||
"Heatmap-Wrapper",
|
||||
@@ -55,7 +53,7 @@ fn heatmap_view(heatmaps: Vec<common::demo_analysis::PlayerHeatmap>) -> impl lep
|
||||
.heatmap_container {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
|
||||
.heatmap_image {
|
||||
width: min(40vw, 60vh);
|
||||
height: min(40vw, 60vh);
|
||||
@@ -111,17 +109,27 @@ fn heatmap_view(heatmaps: Vec<common::demo_analysis::PlayerHeatmap>) -> impl lep
|
||||
|
||||
let player = players.get(idx).unwrap();
|
||||
|
||||
set_value(heatmaps.iter().filter(|h| &h.name == player).cloned().collect());
|
||||
set_value(
|
||||
heatmaps
|
||||
.iter()
|
||||
.filter(|h| &h.name == player)
|
||||
.cloned()
|
||||
.collect(),
|
||||
);
|
||||
set_idx(idx);
|
||||
};
|
||||
|
||||
let players = og_players;
|
||||
let select_values = move || {
|
||||
players.iter().enumerate().map(|(idx, name)| {
|
||||
view! {
|
||||
<option value={idx}>{ format!("{}", name) }</option>
|
||||
}
|
||||
}).collect::<Vec<_>>()
|
||||
players
|
||||
.iter()
|
||||
.enumerate()
|
||||
.map(|(idx, name)| {
|
||||
view! {
|
||||
<option value={idx}>{ format!("{}", name) }</option>
|
||||
}
|
||||
})
|
||||
.collect::<Vec<_>>()
|
||||
};
|
||||
|
||||
view! {
|
||||
@@ -132,7 +140,7 @@ fn heatmap_view(heatmaps: Vec<common::demo_analysis::PlayerHeatmap>) -> impl lep
|
||||
</select>
|
||||
<br />
|
||||
|
||||
{ heatmap_view }
|
||||
{ heatmap_view }
|
||||
</div>
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,25 +14,23 @@ fn to_coloumn(idx: usize) -> usize {
|
||||
|
||||
#[leptos::component]
|
||||
pub fn per_round() -> impl leptos::IntoView {
|
||||
let perround_resource =
|
||||
create_resource(leptos_router::use_params_map(), |params| async move {
|
||||
let id = params.get("id").unwrap();
|
||||
let perround_resource = create_resource(leptos_router::use_params_map(), |params| async move {
|
||||
let id = params.get("id").unwrap();
|
||||
|
||||
let res = reqwasm::http::Request::get(&format!("/api/demos/{}/analysis/perround", id))
|
||||
.send()
|
||||
.await
|
||||
.unwrap();
|
||||
res.json::<common::demo_analysis::PerRoundResult>()
|
||||
.await
|
||||
.unwrap()
|
||||
});
|
||||
|
||||
let res =
|
||||
reqwasm::http::Request::get(&format!("/api/demos/{}/analysis/perround", id))
|
||||
.send()
|
||||
.await
|
||||
.unwrap();
|
||||
res.json::<common::demo_analysis::PerRoundResult>()
|
||||
.await
|
||||
.unwrap()
|
||||
});
|
||||
|
||||
let style = stylers::style! {
|
||||
"PerRound",
|
||||
.round_overview {
|
||||
display: inline-grid;
|
||||
|
||||
|
||||
width: 90vw;
|
||||
grid-template-columns: auto repeat(12, 1fr) 5px repeat(12, 1fr) 5px repeat(3, 1fr) 5px repeat(3, 1fr);
|
||||
grid-template-rows: repeat(3, auto);
|
||||
@@ -73,7 +71,10 @@ pub fn per_round() -> impl leptos::IntoView {
|
||||
let events_list = move || {
|
||||
let round_index = round();
|
||||
let data = perround_resource.get();
|
||||
let current_round = data.as_ref().map(|rs| rs.rounds.get(round_index).cloned()).flatten();
|
||||
let current_round = data
|
||||
.as_ref()
|
||||
.map(|rs| rs.rounds.get(round_index).cloned())
|
||||
.flatten();
|
||||
let teams = data.as_ref().map(|rs| rs.teams.clone());
|
||||
|
||||
match (current_round, teams) {
|
||||
@@ -171,13 +172,22 @@ pub fn per_round() -> impl leptos::IntoView {
|
||||
None => return view! {}.into_view(),
|
||||
};
|
||||
|
||||
let upper = perround_teams.iter().find(|t| t.name == "CT").map(|t| t.number).unwrap_or(0);
|
||||
let lower = perround_teams.iter().find(|t| t.name == "TERRORIST").map(|t| t.number).unwrap_or(0);
|
||||
let upper = perround_teams
|
||||
.iter()
|
||||
.find(|t| t.name == "CT")
|
||||
.map(|t| t.number)
|
||||
.unwrap_or(0);
|
||||
let lower = perround_teams
|
||||
.iter()
|
||||
.find(|t| t.name == "TERRORIST")
|
||||
.map(|t| t.number)
|
||||
.unwrap_or(0);
|
||||
|
||||
view! {
|
||||
<span style="grid-column: 1; grid-row: 1">Team { upper }</span>
|
||||
<span style="grid-column: 1; grid-row: 3">Team { lower }</span>
|
||||
}.into_view()
|
||||
}
|
||||
.into_view()
|
||||
};
|
||||
|
||||
view! {
|
||||
|
||||
@@ -25,8 +25,10 @@ pub fn scoreboard() -> impl leptos::IntoView {
|
||||
.get()
|
||||
.into_iter()
|
||||
.flat_map(|v| v.teams.into_iter())
|
||||
.map(|(team, players)| view! {
|
||||
<TeamScoreboard value=players team_name=format!("Team {}", team) />
|
||||
.map(|(team, players)| {
|
||||
view! {
|
||||
<TeamScoreboard value=players team_name=format!("Team {}", team) />
|
||||
}
|
||||
})
|
||||
.collect::<Vec<_>>()
|
||||
};
|
||||
@@ -46,7 +48,10 @@ mod orderings {
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct Ordering {
|
||||
name: SelectedStat,
|
||||
pub sort_fn: fn(p1: &common::demo_analysis::ScoreBoardPlayer, p2: &common::demo_analysis::ScoreBoardPlayer) -> core::cmp::Ordering,
|
||||
pub sort_fn: fn(
|
||||
p1: &common::demo_analysis::ScoreBoardPlayer,
|
||||
p2: &common::demo_analysis::ScoreBoardPlayer,
|
||||
) -> core::cmp::Ordering,
|
||||
}
|
||||
|
||||
impl Ordering {
|
||||
@@ -89,7 +94,10 @@ mod orderings {
|
||||
}
|
||||
|
||||
#[leptos::component]
|
||||
fn team_scoreboard(value: Vec<common::demo_analysis::ScoreBoardPlayer>, team_name: String) -> impl IntoView {
|
||||
fn team_scoreboard(
|
||||
value: Vec<common::demo_analysis::ScoreBoardPlayer>,
|
||||
team_name: String,
|
||||
) -> impl IntoView {
|
||||
let (ordering, set_ordering) = create_signal::<orderings::Ordering>(orderings::DAMAGE);
|
||||
|
||||
let style = stylers::style! {
|
||||
|
||||
@@ -20,7 +20,7 @@ fn main() {
|
||||
<Route path="/demo/:id" view=Demo>
|
||||
<Route path="perround" view=frontend::demo::perround::PerRound />
|
||||
<Route path="scoreboard" view=frontend::demo::scoreboard::Scoreboard />
|
||||
<Route path="heatmaps" view=frontend::demo::heatmap::Heatmaps />
|
||||
<Route path="heatmaps" view=frontend::demo::heatmap::Heatmaps />
|
||||
<Route path="" view=frontend::demo::scoreboard::Scoreboard />
|
||||
</Route>
|
||||
</Routes>
|
||||
|
||||
Reference in New Issue
Block a user