Fix some formatting and improve structure
This commit is contained in:
@@ -6,16 +6,20 @@ pub fn demo() -> impl leptos::IntoView {
|
||||
let params = leptos_router::use_params_map();
|
||||
let id = move || params.with(|params| params.get("id").cloned().unwrap_or_default());
|
||||
|
||||
let demo_info = create_resource(|| (), move |_| async move {
|
||||
let res = reqwasm::http::Request::get(&format!("/api/demos/{}/info", id())).send().await.unwrap();
|
||||
res.json::<common::DemoInfo>().await.unwrap()
|
||||
});
|
||||
let demo_info = create_resource(
|
||||
|| (),
|
||||
move |_| async move {
|
||||
let res = reqwasm::http::Request::get(&format!("/api/demos/{}/info", id()))
|
||||
.send()
|
||||
.await
|
||||
.unwrap();
|
||||
res.json::<common::DemoInfo>().await.unwrap()
|
||||
},
|
||||
);
|
||||
|
||||
let map = move || {
|
||||
match demo_info.get() {
|
||||
Some(v) => v.map.clone(),
|
||||
None => String::new(),
|
||||
}
|
||||
let map = move || match demo_info.get() {
|
||||
Some(v) => v.map.clone(),
|
||||
None => String::new(),
|
||||
};
|
||||
|
||||
let selected_tab = move || {
|
||||
@@ -24,7 +28,7 @@ pub fn demo() -> impl leptos::IntoView {
|
||||
let trailing = loc_path.split('/').last();
|
||||
trailing.unwrap_or("/").to_owned()
|
||||
};
|
||||
|
||||
|
||||
let style = stylers::style! {
|
||||
"Demo",
|
||||
.analysis_bar {
|
||||
|
||||
@@ -25,7 +25,10 @@ pub fn demo_list_entry(demo: common::BaseDemoInfo) -> impl leptos::IntoView {
|
||||
}
|
||||
|
||||
#[leptos::component]
|
||||
pub fn upload_demo(shown: ReadSignal<DemoUploadStatus>, update_shown: WriteSignal<DemoUploadStatus>) -> impl leptos::IntoView {
|
||||
pub fn upload_demo(
|
||||
shown: ReadSignal<DemoUploadStatus>,
|
||||
update_shown: WriteSignal<DemoUploadStatus>,
|
||||
) -> impl leptos::IntoView {
|
||||
use leptos_router::Form;
|
||||
|
||||
let style = stylers::style! {
|
||||
@@ -69,11 +72,17 @@ pub fn upload_demo(shown: ReadSignal<DemoUploadStatus>, update_shown: WriteSigna
|
||||
|
||||
#[leptos::component]
|
||||
pub fn homepage() -> impl leptos::IntoView {
|
||||
let demo_data = create_resource(|| (), |_| async move {
|
||||
let res = reqwasm::http::Request::get("/api/demos/list").send().await.unwrap();
|
||||
let demos: Vec<common::BaseDemoInfo> = res.json().await.unwrap();
|
||||
demos
|
||||
});
|
||||
let demo_data = create_resource(
|
||||
|| (),
|
||||
|_| async move {
|
||||
let res = reqwasm::http::Request::get("/api/demos/list")
|
||||
.send()
|
||||
.await
|
||||
.unwrap();
|
||||
let demos: Vec<common::BaseDemoInfo> = res.json().await.unwrap();
|
||||
demos
|
||||
},
|
||||
);
|
||||
|
||||
view! {
|
||||
<div>
|
||||
|
||||
@@ -1,39 +1,42 @@
|
||||
use leptos::*;
|
||||
use leptos_router::*;
|
||||
|
||||
use frontend::{UploadDemo, TopBar, Homepage, Demo};
|
||||
use frontend::{Demo, Homepage, TopBar, UploadDemo};
|
||||
|
||||
async fn load_demos() -> Vec<common::BaseDemoInfo> {
|
||||
let res = reqwasm::http::Request::get("/api/demos/list").send().await.unwrap();
|
||||
let res = reqwasm::http::Request::get("/api/demos/list")
|
||||
.send()
|
||||
.await
|
||||
.unwrap();
|
||||
let demos: Vec<common::BaseDemoInfo> = res.json().await.unwrap();
|
||||
|
||||
demos
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let async_data = create_resource(|| (), |_| async move {
|
||||
load_demos().await
|
||||
});
|
||||
let async_data = create_resource(|| (), |_| async move { load_demos().await });
|
||||
|
||||
let (upload_demo_read, upload_demo_write) = create_signal(frontend::DemoUploadStatus::Hidden);
|
||||
|
||||
mount_to_body(move || view! {
|
||||
<Router>
|
||||
<nav>
|
||||
<TopBar update_demo_visible=upload_demo_write />
|
||||
</nav>
|
||||
<main>
|
||||
<UploadDemo shown=upload_demo_read update_shown=upload_demo_write />
|
||||
mount_to_body(move || {
|
||||
view! {
|
||||
<Router>
|
||||
<nav>
|
||||
<TopBar update_demo_visible=upload_demo_write />
|
||||
</nav>
|
||||
<main>
|
||||
<UploadDemo shown=upload_demo_read update_shown=upload_demo_write />
|
||||
|
||||
<Routes>
|
||||
<Route path="/" view=Homepage />
|
||||
<Route path="/demo/:id" view=Demo>
|
||||
<Route path="perround" view=frontend::demo::PerRound />
|
||||
<Route path="scoreboard" view=frontend::demo::Scoreboard />
|
||||
<Route path="" view=frontend::demo::Scoreboard />
|
||||
</Route>
|
||||
</Routes>
|
||||
</main>
|
||||
</Router>
|
||||
<Routes>
|
||||
<Route path="/" view=Homepage />
|
||||
<Route path="/demo/:id" view=Demo>
|
||||
<Route path="perround" view=frontend::demo::PerRound />
|
||||
<Route path="scoreboard" view=frontend::demo::Scoreboard />
|
||||
<Route path="" view=frontend::demo::Scoreboard />
|
||||
</Route>
|
||||
</Routes>
|
||||
</main>
|
||||
</Router>
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -5,12 +5,19 @@ use crate::DemoUploadStatus;
|
||||
|
||||
#[leptos::component]
|
||||
fn steam_login(height: &'static str, width: &'static str) -> impl leptos::IntoView {
|
||||
let user_status = create_resource(|| (), |_| async move {
|
||||
let res = reqwasm::http::Request::get("/api/user/status").send().await.unwrap();
|
||||
res.json::<common::UserStatus>().await.map_err(|e| ())
|
||||
});
|
||||
let user_status = create_resource(
|
||||
|| (),
|
||||
|_| async move {
|
||||
let res = reqwasm::http::Request::get("/api/user/status")
|
||||
.send()
|
||||
.await
|
||||
.unwrap();
|
||||
res.json::<common::UserStatus>().await.map_err(|e| ())
|
||||
},
|
||||
);
|
||||
|
||||
let tmp = move || match user_status.get() {
|
||||
let tmp = move || {
|
||||
match user_status.get() {
|
||||
Some(Ok(user)) =>
|
||||
view! {
|
||||
<p>{user.name}</p>
|
||||
@@ -21,6 +28,7 @@ fn steam_login(height: &'static str, width: &'static str) -> impl leptos::IntoVi
|
||||
<img src="https://community.akamai.steamstatic.com/public/images/signinthroughsteam/sits_01.png" alt="Steam Login" style=format!("height: {height}; width: {width}") />
|
||||
</a>
|
||||
}.into_view(),
|
||||
}
|
||||
};
|
||||
|
||||
view! {
|
||||
@@ -66,7 +74,7 @@ pub fn top_bar(update_demo_visible: WriteSignal<DemoUploadStatus>) -> impl lepto
|
||||
<A href="/">
|
||||
<p class="logo">Knifer</p>
|
||||
</A>
|
||||
|
||||
|
||||
<div class="elem" style="grid-column-start: 3">
|
||||
<button on:click=move |_| update_demo_visible(DemoUploadStatus::Shown)>
|
||||
Upload Demo
|
||||
|
||||
Reference in New Issue
Block a user