From 0afd3e0e412d99ab6da0daa79f75183f78322cff Mon Sep 17 00:00:00 2001 From: Henri Bourcereau Date: Sun, 7 Jun 2026 20:12:33 +0200 Subject: [PATCH] fix(web client): free mode reset checkers only after "retry" button --- clients/web/src/game/components/game_screen.rs | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/clients/web/src/game/components/game_screen.rs b/clients/web/src/game/components/game_screen.rs index e04e8c4..46f9deb 100644 --- a/clients/web/src/game/components/game_screen.rs +++ b/clients/web/src/game/components/game_screen.rs @@ -94,19 +94,22 @@ pub fn GameScreen(state: GameUiState) -> impl IntoView { cmd_tx_effect .unbounded_send(NetCommand::Action(PlayerAction::Move(m1, m2))) .ok(); + staged_moves.set(vec![]); + selected_origin.set(None); + prev_staged_len.set(0); } else { let specific_err = rules.moves_allowed(&(vm1, vm2)).err(); move_error.set(Some(specific_err)); + // Keep staged_moves intact so pieces stay in place until Retry is clicked. } } else { cmd_tx_effect .unbounded_send(NetCommand::Action(PlayerAction::Move(m1, m2))) .ok(); + staged_moves.set(vec![]); + selected_origin.set(None); + prev_staged_len.set(0); } - - staged_moves.set(vec![]); - selected_origin.set(None); - prev_staged_len.set(0); } }); @@ -457,7 +460,11 @@ pub fn GameScreen(state: GameUiState) -> impl IntoView { {msg} }