From 8705cc418b7553e23daaff86b7227d74eb34f51f Mon Sep 17 00:00:00 2001 From: Henri Bourcereau Date: Thu, 7 May 2026 10:58:22 +0200 Subject: [PATCH] feat(web client): add action button icons --- clients/web/assets/style.css | 2 ++ clients/web/src/portal/lobby.rs | 36 ++++++++++++++++++++++++--------- 2 files changed, 29 insertions(+), 9 deletions(-) diff --git a/clients/web/assets/style.css b/clients/web/assets/style.css index d00a72a..49e9e3c 100644 --- a/clients/web/assets/style.css +++ b/clients/web/assets/style.css @@ -52,6 +52,8 @@ body { width: 1.2em; height: 1.2em; color: var(--ui-parchment); + vertical-align: -0.25em; + margin-right: 0.7em; } /* ── Site navigation ─────────────────────────────────────────────── */ diff --git a/clients/web/src/portal/lobby.rs b/clients/web/src/portal/lobby.rs index 9902039..ac91a43 100644 --- a/clients/web/src/portal/lobby.rs +++ b/clients/web/src/portal/lobby.rs @@ -21,12 +21,12 @@ fn generate_nickname() -> String { use rand::Rng; let mut rng = rand::rng(); const ADJ: &[&str] = &[ - "swift", "brave", "noble", "fierce", "clever", "bold", "cunning", - "agile", "sharp", "golden", "iron", "silver", "quick", "daring", "wild", + "swift", "brave", "noble", "fierce", "clever", "bold", "cunning", "agile", "sharp", + "golden", "iron", "silver", "quick", "daring", "wild", ]; const NOUN: &[&str] = &[ - "fox", "hawk", "wolf", "lion", "bear", "rook", "knight", - "duke", "earl", "lance", "blade", "crown", "dame", "ace", "star", + "fox", "hawk", "wolf", "lion", "bear", "rook", "knight", "duke", "earl", "lance", "blade", + "crown", "dame", "ace", "star", ]; let adj = ADJ[rng.random_range(0..ADJ.len())]; let noun = NOUN[rng.random_range(0..NOUN.len())]; @@ -124,7 +124,9 @@ pub fn LobbyPage() -> impl IntoView { }; join_processed.set_value(true); if auth_username.get_untracked().is_some() { - cmd_tx_q.unbounded_send(NetCommand::JoinRoom { room: code }).ok(); + cmd_tx_q + .unbounded_send(NetCommand::JoinRoom { room: code }) + .ok(); } else { pending_action.set(Some(PendingLobbyAction::Join { code })); } @@ -203,7 +205,9 @@ fn IdleCard( let on_create = move |_: leptos::ev::MouseEvent| { let code = generate_room_code(); if auth_username.get_untracked().is_some() { - cmd_create.unbounded_send(NetCommand::CreateRoom { room: code.clone() }).ok(); + cmd_create + .unbounded_send(NetCommand::CreateRoom { room: code.clone() }) + .ok(); view_state.set(LobbyView::Waiting { code }); } else { pending_action.set(Some(PendingLobbyAction::Create { code })); @@ -216,9 +220,15 @@ fn IdleCard( class="login-btn login-btn-bot" on:click=move |_| { cmd_bot.unbounded_send(NetCommand::PlayVsBot).ok(); } > + + + {t!(i18n, play_vs_bot)} @@ -283,15 +293,23 @@ fn NicknameModal( let on_play = move |_: leptos::ev::MouseEvent| { let chosen = nick.get().trim().to_string(); - let chosen = if chosen.is_empty() { generate_nickname() } else { chosen }; + let chosen = if chosen.is_empty() { + generate_nickname() + } else { + chosen + }; anon_nickname.set(Some(chosen)); match &pending { PendingLobbyAction::Create { code } => { - cmd_tx.unbounded_send(NetCommand::CreateRoom { room: code.clone() }).ok(); + cmd_tx + .unbounded_send(NetCommand::CreateRoom { room: code.clone() }) + .ok(); view_state.set(LobbyView::Waiting { code: code.clone() }); } PendingLobbyAction::Join { code } => { - cmd_tx.unbounded_send(NetCommand::JoinRoom { room: code.clone() }).ok(); + cmd_tx + .unbounded_send(NetCommand::JoinRoom { room: code.clone() }) + .ok(); } } pending_action.set(None);