use leptos::*; #[leptos::component] pub fn scoreboard() -> impl leptos::IntoView { use leptos::Suspense; let scoreboard_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/scoreboard", id)) .send() .await .unwrap(); res.json::() .await .unwrap() }); view! {

Scoreboard

Loading Scoreboard data

} >
} } #[leptos::component] fn team_scoreboard(info: Resource, team_name: String, part: fn(common::demo_analysis::ScoreBoard) -> Vec) -> impl IntoView { let style = stylers::style! { "Team-Scoreboard", tr:nth-child(even) { background-color: #dddddd; } th { padding-left: 10px; padding-right: 10px; } th:nth-child(1) { width: 200px; } }; view! { class = style,

{ team_name }

{ move || { let value = info.get().map(|v| part(v)); (value).into_iter().flat_map(|v| v).map(|s| { view! { class=style, } }).collect::>() } }
Name Kills Assists Deaths Damage
{ s.name }{ s.kills }{ s.assists }{ s.deaths }{ s.damage }
} }