From 659037ec00a8e5d30b85d36398be121f7b693062 Mon Sep 17 00:00:00 2001 From: Matthew Kaminski Date: Fri, 30 Aug 2024 03:38:02 -0400 Subject: [PATCH] Moved pending username to new global state --- src/capsules/forgot_password_form.rs | 8 ++++---- src/capsules/login_form.rs | 12 ++++++------ src/capsules/register_form.rs | 4 ++-- src/global_state.rs | 2 ++ 4 files changed, 14 insertions(+), 12 deletions(-) diff --git a/src/capsules/forgot_password_form.rs b/src/capsules/forgot_password_form.rs index 87186a0..1e96f4c 100644 --- a/src/capsules/forgot_password_form.rs +++ b/src/capsules/forgot_password_form.rs @@ -60,10 +60,10 @@ fn forgot_password_form_capsule( ) -> View { // If there's a tentative username, set it let global_state = Reactor::::from_cx(cx).get_global_state::(cx); - if let Some(username) = (*global_state.auth.username.get()).clone() { - state.username.set(username); - global_state.auth.username.set(None); - } + state + .username + .set((*global_state.auth.pending_username.get()).clone()); + global_state.auth.pending_username.set(String::new()); let close_modal = move |_event: Event| { #[cfg(client)] diff --git a/src/capsules/login_form.rs b/src/capsules/login_form.rs index ac0c29b..e61e106 100644 --- a/src/capsules/login_form.rs +++ b/src/capsules/login_form.rs @@ -60,10 +60,10 @@ fn login_form_capsule( ) -> View { // If there's a tentative username, set it let global_state = Reactor::::from_cx(cx).get_global_state::(cx); - if let Some(username) = (*global_state.auth.username.get()).clone() { - state.username.set(username); - global_state.auth.username.set(None); - } + state + .username + .set((*global_state.auth.pending_username.get()).clone()); + global_state.auth.pending_username.set(String::new()); let close_modal = move |_event: Event| { #[cfg(client)] @@ -85,8 +85,8 @@ fn login_form_capsule( // Update tentative username global_state .auth - .username - .set(Some((*state.username.get()).clone())); + .pending_username + .set((*state.username.get()).clone()); // Open new modal global_state diff --git a/src/capsules/register_form.rs b/src/capsules/register_form.rs index 60927e4..ca26fa7 100644 --- a/src/capsules/register_form.rs +++ b/src/capsules/register_form.rs @@ -109,8 +109,8 @@ fn register_form_capsule( // Update tentative username global_state .auth - .username - .set(Some((*state.username.get()).clone())); + .pending_username + .set((*state.username.get()).clone()); // Open login modal global_state.modals_open.login.set(OpenState::Open); diff --git a/src/global_state.rs b/src/global_state.rs index 8e91b48..1f7d3e0 100644 --- a/src/global_state.rs +++ b/src/global_state.rs @@ -21,6 +21,7 @@ pub struct AppState { #[rx(alias = "AuthDataRx")] pub struct AuthData { pub state: LoginState, + pub pending_username: String, pub username: Option, pub remember_me: Option, pub auth_info: Option, @@ -89,6 +90,7 @@ pub async fn get_build_state() -> AppState { AppState { auth: AuthData { state: LoginState::Unknown, + pending_username: String::new(), username: None, remember_me: None, auth_info: None,