buffer close, not kill implemented yet

This commit is contained in:
filipriec
2025-04-15 18:29:59 +02:00
parent 09068fd4e5
commit 5e482cd77b
5 changed files with 12 additions and 9 deletions

6
Cargo.lock generated
View File

@@ -421,7 +421,7 @@ dependencies = [
[[package]] [[package]]
name = "client" name = "client"
version = "0.3.5" version = "0.3.13"
dependencies = [ dependencies = [
"async-trait", "async-trait",
"common", "common",
@@ -462,7 +462,7 @@ dependencies = [
[[package]] [[package]]
name = "common" name = "common"
version = "0.3.5" version = "0.3.13"
dependencies = [ dependencies = [
"prost", "prost",
"serde", "serde",
@@ -2593,7 +2593,7 @@ dependencies = [
[[package]] [[package]]
name = "server" name = "server"
version = "0.3.5" version = "0.3.13"
dependencies = [ dependencies = [
"bcrypt", "bcrypt",
"chrono", "chrono",

View File

@@ -5,7 +5,7 @@ resolver = "2"
[workspace.package] [workspace.package]
# TODO: idk how to do the name, fix later # TODO: idk how to do the name, fix later
# name = "Multieko2" # name = "Multieko2"
version = "0.3.5" version = "0.3.13"
edition = "2021" edition = "2021"
license = "GPL-3.0-or-later" license = "GPL-3.0-or-later"
authors = ["Filip Priečinský <filippriec@gmail.com>"] authors = ["Filip Priečinský <filippriec@gmail.com>"]

View File

@@ -4,6 +4,7 @@ use crossterm::event::{Event, KeyCode};
use crate::config::binds::config::Config; use crate::config::binds::config::Config;
use crate::ui::handlers::context::DialogPurpose; use crate::ui::handlers::context::DialogPurpose;
use crate::state::app::state::AppState; use crate::state::app::state::AppState;
use crate::state::app::buffer::{AppView, BufferState};
use crate::state::pages::auth::AuthState; use crate::state::pages::auth::AuthState;
use crate::state::pages::auth::LoginState; use crate::state::pages::auth::LoginState;
use crate::state::pages::auth::RegisterState; use crate::state::pages::auth::RegisterState;
@@ -20,6 +21,7 @@ pub async fn handle_dialog_event(
auth_state: &mut AuthState, auth_state: &mut AuthState,
login_state: &mut LoginState, login_state: &mut LoginState,
register_state: &mut RegisterState, register_state: &mut RegisterState,
buffer_state: &mut BufferState,
) -> Option<Result<EventOutcome, Box<dyn std::error::Error>>> { ) -> Option<Result<EventOutcome, Box<dyn std::error::Error>>> {
if let Event::Key(key) = event { if let Event::Key(key) = event {
// Always allow Esc to dismiss // Always allow Esc to dismiss
@@ -62,7 +64,7 @@ pub async fn handle_dialog_event(
match selected_index { match selected_index {
0 => { // "Menu" button selected 0 => { // "Menu" button selected
app_state.hide_dialog(); app_state.hide_dialog();
let message = login::back_to_main(login_state, app_state).await; let message = login::back_to_main(login_state, app_state, buffer_state).await;
return Some(Ok(EventOutcome::Ok(message))); return Some(Ok(EventOutcome::Ok(message)));
} }
1 => { 1 => {

View File

@@ -111,7 +111,7 @@ impl EventHandler {
// --- DIALOG MODALITY --- // --- DIALOG MODALITY ---
if app_state.ui.dialog.dialog_show { if app_state.ui.dialog.dialog_show {
if let Some(dialog_result) = dialog::handle_dialog_event( if let Some(dialog_result) = dialog::handle_dialog_event(
&event, config, app_state, auth_state, login_state, register_state &event, config, app_state, auth_state, login_state, register_state, buffer_state
).await { ).await {
return dialog_result; return dialog_result;
} }
@@ -189,7 +189,7 @@ impl EventHandler {
UiContext::Login => { UiContext::Login => {
message = match index { message = match index {
0 => login::save(auth_state, login_state, &mut self.auth_client, app_state).await?, 0 => login::save(auth_state, login_state, &mut self.auth_client, app_state).await?,
1 => login::back_to_main(login_state, app_state).await, 1 => login::back_to_main(login_state, app_state, buffer_state).await,
_ => "Invalid Login Option".to_string(), _ => "Invalid Login Option".to_string(),
}; };
} }

View File

@@ -4,6 +4,7 @@ use crate::services::auth::AuthClient;
use crate::state::pages::auth::AuthState; use crate::state::pages::auth::AuthState;
use crate::state::pages::auth::LoginState; use crate::state::pages::auth::LoginState;
use crate::state::app::state::AppState; use crate::state::app::state::AppState;
use crate::state::app::buffer::{AppView, BufferState};
use crate::state::pages::canvas_state::CanvasState; use crate::state::pages::canvas_state::CanvasState;
use crate::ui::handlers::context::DialogPurpose; use crate::ui::handlers::context::DialogPurpose;
@@ -87,6 +88,7 @@ pub async fn revert(
pub async fn back_to_main( pub async fn back_to_main(
login_state: &mut LoginState, login_state: &mut LoginState,
app_state: &mut AppState, app_state: &mut AppState,
buffer_state: &mut BufferState,
) -> String { ) -> String {
// Clear the input fields // Clear the input fields
login_state.username.clear(); login_state.username.clear();
@@ -98,8 +100,7 @@ pub async fn back_to_main(
app_state.hide_dialog(); // Uncomment if needed app_state.hide_dialog(); // Uncomment if needed
// Navigation logic (currently disabled in original code) // Navigation logic (currently disabled in original code)
app_state.ui.show_login = false; buffer_state.update_history(AppView::Intro);
app_state.ui.show_intro = true;
// Reset focus state // Reset focus state
app_state.ui.focus_outside_canvas = false; app_state.ui.focus_outside_canvas = false;