From ae2fa1c723ff0c3d9f71c1692d151e8b1ee1e2c5 Mon Sep 17 00:00:00 2001 From: yaroslav k Date: Sun, 16 Aug 2026 14:33:11 +0300 Subject: [PATCH] ac fix --- src/components/sidebar.rs | 2 ++ src/components/sidebar/armor_class.rs | 22 ++++++++++++++++++++++ src/components/sidebar/hit_points.rs | 23 ++++++----------------- style/_sidebar.scss | 8 ++++++++ 4 files changed, 38 insertions(+), 17 deletions(-) create mode 100644 src/components/sidebar/armor_class.rs diff --git a/src/components/sidebar.rs b/src/components/sidebar.rs index 505903d..1fe4129 100644 --- a/src/components/sidebar.rs +++ b/src/components/sidebar.rs @@ -6,6 +6,7 @@ mod image; mod names; mod about; mod hit_points; +mod armor_class; mod hit_dice; mod death_saving_throws; mod spell_slots; @@ -20,6 +21,7 @@ pub fn Sidebar () -> impl IntoView { + diff --git a/src/components/sidebar/armor_class.rs b/src/components/sidebar/armor_class.rs new file mode 100644 index 0000000..70398b7 --- /dev/null +++ b/src/components/sidebar/armor_class.rs @@ -0,0 +1,22 @@ +use crate::prelude::*; +use leptos::prelude::*; + +/// AC counter: for now is to be set manually +#[component] +pub fn ArmorClass () -> impl IntoView { + let state = expect_context::(); + let player = state.player(); + + let ac = player.ac(); + + let adjust_ac = move |ev: Targeted| { + utils::adjust_checked(ev, ac); + }; + + view! { +
"ac/кд:"
+
+ +
+ } +} diff --git a/src/components/sidebar/hit_points.rs b/src/components/sidebar/hit_points.rs index 0e4d041..bfdd7e4 100644 --- a/src/components/sidebar/hit_points.rs +++ b/src/components/sidebar/hit_points.rs @@ -2,17 +2,16 @@ use crate::prelude::*; use leptos::prelude::*; /// Current/max HP with a fill bar, plus temp HP with its own bar. -/// All three numbers are editable `type="number"` inputs; AC sits -/// next to them and is set manually. +/// All three numbers are editable `type="number"` inputs + #[component] -pub fn HitPoints () -> impl IntoView { +pub fn HitPoints() -> impl IntoView { let state = expect_context::(); let player = state.player(); let hp = player.hp(); let max_hp = player.max_hp(); let temp_hp = player.temp_hp(); - let ac = player.ac(); // All three inputs parse via `utils::adjust_checked`; invalid text // restores the previous value. @@ -28,16 +27,10 @@ pub fn HitPoints () -> impl IntoView { utils::adjust_checked(ev, temp_hp); }; - let adjust_ac = move |ev: Targeted| { - utils::adjust_checked(ev, ac); - }; - - - let pc_hp = move |a: u16, b: u16| -> String { - format!("width: {}%", utils::filled_pc(a, b).min(100.)) - }; + let pc_hp = + move |a: u16, b: u16| -> String { format!("width: {}%", utils::filled_pc(a, b).min(100.)) }; view! { -
"hp/оз, ac/КД:"
+
"hp/оз:"
@@ -53,10 +46,6 @@ pub fn HitPoints () -> impl IntoView {
-
- "КД:" - -
} } diff --git a/style/_sidebar.scss b/style/_sidebar.scss index 4debfaa..c4d342c 100644 --- a/style/_sidebar.scss +++ b/style/_sidebar.scss @@ -201,6 +201,14 @@ aside { filter: contrast(70%); } } + + .ac { + margin-left: auto; + justify-content: flex-end; + text-align: right; + width: 20%; + background: rgba(green, 0.15); + } .death-throws { display: flex;