From aebd30c1c2fbc721a3926d96a33e93b23d746536 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Asger=20Juul=20Brunsh=C3=B8j?= Date: Wed, 19 Feb 2025 21:49:34 +0100 Subject: [PATCH] show method --- Cargo.lock | 27 ++++++++++++++++--- crates/ascend/Cargo.toml | 2 +- crates/ascend/src/models.rs | 9 ++++++- crates/ascend/src/pages/wall.rs | 46 +++++++++++++++++++++++++-------- justfile | 1 - 5 files changed, 68 insertions(+), 17 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 85fd3e4..c9e2bb9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -156,7 +156,7 @@ dependencies = [ "codee", "confik", "console_error_panic_hook", - "derive_more", + "derive_more 2.0.1", "error_reporter", "getrandom 0.3.1", "http 1.2.0", @@ -776,7 +776,16 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" dependencies = [ - "derive_more-impl", + "derive_more-impl 1.0.0", +] + +[[package]] +name = "derive_more" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678" +dependencies = [ + "derive_more-impl 2.0.1", ] [[package]] @@ -791,6 +800,18 @@ dependencies = [ "unicode-xid", ] +[[package]] +name = "derive_more-impl" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "unicode-xid", +] + [[package]] name = "displaydoc" version = "0.2.5" @@ -2113,7 +2134,7 @@ dependencies = [ name = "moonboard-parser" version = "0.0.0" dependencies = [ - "derive_more", + "derive_more 1.0.0", "serde", "serde_json", "tokio", diff --git a/crates/ascend/Cargo.toml b/crates/ascend/Cargo.toml index 70dd1e8..e7673a6 100644 --- a/crates/ascend/Cargo.toml +++ b/crates/ascend/Cargo.toml @@ -15,7 +15,7 @@ chrono = { version = "0.4.39", features = ["now", "serde"] } clap = { version = "4.5.7", features = ["derive"] } confik = { version = "0.12", optional = true, features = ["camino"] } console_error_panic_hook = "0.1" -derive_more = { version = "1", features = [ +derive_more = { version = "2", features = [ "display", "error", "from", diff --git a/crates/ascend/src/models.rs b/crates/ascend/src/models.rs index 1ef6591..124d855 100644 --- a/crates/ascend/src/models.rs +++ b/crates/ascend/src/models.rs @@ -17,10 +17,12 @@ pub use v2::WallUid; pub mod v2 { use super::v1; + use derive_more::Display; use serde::Deserialize; use serde::Serialize; use std::collections::BTreeMap; use std::collections::BTreeSet; + use std::fmt::Display; #[derive(Serialize, Deserialize, Debug)] pub struct Root { @@ -78,10 +80,15 @@ pub mod v2 { } } - #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, PartialOrd, Ord)] + #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Display)] pub enum Method { + #[display("Feet follow hands")] FeetFollowHands, + + #[display("Footless")] Footless, + + #[display("Footless plus kickboard")] FootlessPlusKickboard, } diff --git a/crates/ascend/src/pages/wall.rs b/crates/ascend/src/pages/wall.rs index 5930e84..2bdc103 100644 --- a/crates/ascend/src/pages/wall.rs +++ b/crates/ascend/src/pages/wall.rs @@ -1,3 +1,5 @@ +// TODO: Put current problem UID in url + use crate::codec::ron::RonEncoded; use crate::components::button::Button; use crate::components::header::HeaderItem; @@ -38,7 +40,6 @@ pub fn Wall() -> impl IntoView { }); let problem_signal = Signal::derive(move || { let v = problem_action.value().read_only().get(); - tracing::debug!("val: {:?}", v); v.and_then(Result::ok) }); @@ -75,7 +76,7 @@ pub fn Wall() -> impl IntoView { }; leptos::view! { -
+
@@ -90,15 +91,6 @@ pub fn Wall() -> impl IntoView {
-
-

- {move || problem_signal.get().map(|p| p.name.clone())} -

-

- {move || problem_signal.get().map(|p| p.set_by.clone())} -

-
-
}; @@ -142,6 +138,7 @@ fn Grid(wall: models::Wall, problem: Signal>) -> impl In } } +// TODO: refactor this to use the Problem component #[component] #[tracing::instrument(skip_all)] fn Hold(hold: models::Hold, role: Signal>) -> impl IntoView { @@ -171,3 +168,30 @@ fn Hold(hold: models::Hold, role: Signal>) -> impl IntoView { tracing::trace!("view"); view! {
{img}
} } + +#[component] +#[tracing::instrument(skip_all)] +fn ProblemInfo(problem: models::Problem) -> impl IntoView { + tracing::trace!("Enter problem info"); + + let name = problem.name; + let set_by = problem.set_by; + let method = problem.method; + + view! { +
+ + + +
+ } +} + +#[component] +#[tracing::instrument(skip_all)] +fn NameValue(#[prop(into)] name: String, #[prop(into)] value: String) -> impl IntoView { + view! { +

{name}

+

{value}

+ } +} diff --git a/justfile b/justfile index 8c6650e..a689698 100644 --- a/justfile +++ b/justfile @@ -17,7 +17,6 @@ serve: # cargo leptos build --release -vv # cp target/release/ascend dist/ # cp -r target/site dist/ - # run-release: # #!/usr/bin/env bash # cd dist