fixed exit in the login dialog
This commit is contained in:
@@ -59,14 +59,13 @@ pub async fn handle_dialog_event(
|
|||||||
DialogPurpose::LoginSuccess => {
|
DialogPurpose::LoginSuccess => {
|
||||||
match selected_index {
|
match selected_index {
|
||||||
0 => { // "Menu" button selected
|
0 => { // "Menu" button selected
|
||||||
// Hide dialog before calling action that might change state further
|
|
||||||
app_state.hide_dialog();
|
app_state.hide_dialog();
|
||||||
let message = login::back_to_main(auth_state, app_state).await;
|
let message = login::back_to_main(auth_state, app_state).await;
|
||||||
return Some(Ok(EventOutcome::Ok(message)));
|
return Some(Ok(EventOutcome::Ok(message)));
|
||||||
}
|
}
|
||||||
1 => { // "Exit" button selected
|
1 => {
|
||||||
app_state.hide_dialog();
|
app_state.hide_dialog();
|
||||||
return Some(Ok(EventOutcome::Exit("Exiting via dialog".to_string())));
|
return Some(Ok(EventOutcome::Ok("Exiting dialog".to_string())));
|
||||||
}
|
}
|
||||||
_ => {
|
_ => {
|
||||||
app_state.hide_dialog();
|
app_state.hide_dialog();
|
||||||
|
|||||||
@@ -72,16 +72,12 @@ impl EventHandler {
|
|||||||
app_state.update_mode(current_mode);
|
app_state.update_mode(current_mode);
|
||||||
|
|
||||||
// --- DIALOG MODALITY ---
|
// --- DIALOG MODALITY ---
|
||||||
// If a dialog is showing, intercept and handle ONLY dialog inputs.
|
|
||||||
if app_state.ui.dialog.dialog_show {
|
if app_state.ui.dialog.dialog_show {
|
||||||
// Pass event handling to the dedicated dialog handler, including necessary state
|
|
||||||
if let Some(dialog_result) = dialog::handle_dialog_event(
|
if let Some(dialog_result) = dialog::handle_dialog_event(
|
||||||
&event, config, app_state, auth_state, &mut self.auth_client
|
&event, config, app_state, auth_state, &mut self.auth_client
|
||||||
).await {
|
).await {
|
||||||
// If the dialog handler consumed the event, return its result
|
|
||||||
return dialog_result;
|
return dialog_result;
|
||||||
}
|
}
|
||||||
// Fallback if dialog handler returned None or event wasn't handled
|
|
||||||
return Ok(EventOutcome::Ok(String::new()));
|
return Ok(EventOutcome::Ok(String::new()));
|
||||||
}
|
}
|
||||||
// --- END DIALOG MODALITY CHECK ---
|
// --- END DIALOG MODALITY CHECK ---
|
||||||
|
|||||||
Reference in New Issue
Block a user