Add general app feedback reporting

This commit is contained in:
hz
2026-07-15 20:55:13 -05:00
parent 98fa98b5b1
commit aec56f168e
17 changed files with 544 additions and 1 deletions
+22
View File
@@ -10,6 +10,8 @@ var app_menu: PanelContainer
var menu_exit_button: Button
var sound_toggle: CheckButton
var theme_button: Button
var feedback_button: Button
var feedback_dialog: Control
var theme_service
var current_screen_name := ""
@@ -96,6 +98,14 @@ func _build_ui() -> void:
user_label.gui_input.connect(_on_user_label_gui_input)
header.add_child(user_label)
feedback_button = Button.new()
feedback_button.text = "Feedback"
feedback_button.tooltip_text = "Send general feedback or report a bug"
feedback_button.custom_minimum_size = Vector2(100, 44)
Style.style_chip(feedback_button, Style.CYAN)
feedback_button.pressed.connect(open_feedback_dialog)
header.add_child(feedback_button)
theme_button = Button.new()
theme_button.custom_minimum_size = Vector2(44, 44)
theme_button.add_theme_font_size_override("font_size", 22)
@@ -194,6 +204,10 @@ func _build_ui() -> void:
screens_container.add_child(profile)
screens["profile"] = profile
feedback_dialog = preload("res://scripts/ui/app_feedback_dialog.gd").new()
feedback_dialog.name = "AppFeedbackDialog"
add_child(feedback_dialog)
ProfileService.profile_changed.connect(_refresh_header_stats)
QuestionBankService.ratings_changed.connect(_refresh_header_stats)
AuthState.auth_changed.connect(_refresh_header_stats)
@@ -219,6 +233,14 @@ func _refresh_header_stats() -> void:
]
if user_label != null:
user_label.text = AuthState.username if AuthState.is_logged_in else ""
if feedback_button != null:
feedback_button.visible = AuthState.is_logged_in
func open_feedback_dialog() -> void:
if not AuthState.is_logged_in or feedback_dialog == null:
return
feedback_dialog.show_dialog(FeedbackService.build_context(current_screen_name, get_viewport_rect().size))
func _on_theme_changed(is_dark_mode: bool) -> void: