From 16bb87c6b0d46f4cf1adee1012d6a10022a2f584 Mon Sep 17 00:00:00 2001 From: coder-bot Date: Thu, 20 Aug 2026 13:56:44 +0000 Subject: [PATCH] WIP checkpoint: Main menu: fix Register-mode UI trapping the user (remove the confusing mode toggle) --- scripts/main_menu.gd | 39 ++++++++++++++------------------------- 1 file changed, 14 insertions(+), 25 deletions(-) diff --git a/scripts/main_menu.gd b/scripts/main_menu.gd index 6cea46e..8d8d76d 100644 --- a/scripts/main_menu.gd +++ b/scripts/main_menu.gd @@ -3,14 +3,11 @@ extends Control ## ## The AuthPanel is hidden by default. When the user clicks the LoginButton or ## RegisterButton (AuthButtonsRow, above the panel), the auth panel slides in. -## The ModeToggle switches between Login and Register modes, showing/hiding -## the email and DOB fields accordingly. -## -## On successful auth the token is stored via ApiClient, AuthButtonsRow hides, -## the welcome label shows the username, and the Play button becomes enabled. +## The Login and Register buttons in AuthButtonsRow also switch the panel's mode +## when clicked while the panel is already open, so the user can toggle between +## Login and Register modes at any time. - -# ── UI references ──────────────────────────────────────────────────────────── +# ─── UI references ──────────────────────────────────────────────────────────── var _auth_buttons_row: HBoxContainer var _login_button: Button @@ -21,7 +18,6 @@ var _username_edit: LineEdit var _password_edit: LineEdit var _email_edit: LineEdit var _dob_edit: LineEdit -var _mode_toggle: CheckButton var _auth_button: Button var _status_label: Label var _welcome_label: Label @@ -32,7 +28,7 @@ var _is_register_mode: bool = false var _is_authenticating: bool = false -# ── Lifecycle ──────────────────────────────────────────────────────────────── +# ─── Lifecycle ──────────────────────────────────────────────────────────────── func _ready() -> void: # Cache node references. @@ -45,7 +41,6 @@ func _ready() -> void: _password_edit = $CenterContainer/VBoxContainer/AuthPanel/MarginContainer/AuthVBox/PasswordEdit _email_edit = $CenterContainer/VBoxContainer/AuthPanel/MarginContainer/AuthVBox/EmailEdit _dob_edit = $CenterContainer/VBoxContainer/AuthPanel/MarginContainer/AuthVBox/DOBEdit - _mode_toggle = $CenterContainer/VBoxContainer/AuthPanel/MarginContainer/AuthVBox/ModeToggle _auth_button = $CenterContainer/VBoxContainer/AuthPanel/MarginContainer/AuthVBox/AuthButton _status_label = $CenterContainer/VBoxContainer/AuthPanel/MarginContainer/AuthVBox/AuthStatusLabel _welcome_label = $CenterContainer/VBoxContainer/AuthPanel/MarginContainer/AuthVBox/WelcomeLabel @@ -62,7 +57,7 @@ func _ready() -> void: _update_auth_mode_ui() -# ── Play / Quit ────────────────────────────────────────────────────────────── +# ─── Play / Quit ────────────────────────────────────────────────────────────── func _on_play_button_pressed() -> void: if _play_button.disabled: @@ -76,11 +71,14 @@ func _on_quit_button_pressed() -> void: get_tree().quit() -# ── Auth panel toggle ──────────────────────────────────────────────────────── +# ─── Auth panel toggle ──────────────────────────────────────────────────────── func _on_login_button_pressed() -> void: - """Show the auth panel, called from AuthButtonsRow/LoginButton.""" + """Show the auth panel in login mode, called from AuthButtonsRow/LoginButton.""" _auth_panel.visible = true + _is_register_mode = false + _update_auth_mode_ui() + _clear_status() _username_edit.grab_focus() @@ -88,20 +86,11 @@ func _on_register_button_pressed() -> void: """Show the auth panel in register mode, called from AuthButtonsRow/RegisterButton.""" _auth_panel.visible = true _is_register_mode = true - _mode_toggle.button_pressed = true _update_auth_mode_ui() _clear_status() _username_edit.grab_focus() -# ── Mode toggle (Login / Register) ─────────────────────────────────────────── - -func _on_mode_toggle_toggled(button_pressed: bool) -> void: - _is_register_mode = button_pressed - _update_auth_mode_ui() - _clear_status() - - func _update_auth_mode_ui() -> void: """Update labels and field visibility based on login vs register mode.""" if _is_register_mode: @@ -116,7 +105,7 @@ func _update_auth_mode_ui() -> void: _dob_edit.visible = false -# ── Auth submission ────────────────────────────────────────────────────────── +# ─── Auth submission ────────────────────────────────────────────────────────── func _on_auth_button_pressed() -> void: """Handle login or register button press.""" @@ -187,7 +176,7 @@ func _on_auth_complete(result: Dictionary) -> void: _show_status(result.detail) -# ── Status helpers ─────────────────────────────────────────────────────────── +# ─── Status helpers ─────────────────────────────────────────────────────────── func _show_status(message: String) -> void: _status_label.text = message @@ -199,7 +188,7 @@ func _clear_status() -> void: _status_label.visible = false -# ── Validation ─────────────────────────────────────────────────────────────── +# ─── Validation ─────────────────────────────────────────────────────────────── func _is_valid_date(date_str: String) -> bool: """Check if a string looks like a valid YYYY-MM-DD date."""