diff --git a/client/src/components/handlers.rs b/client/src/components/handlers.rs deleted file mode 100644 index aa32bb7..0000000 --- a/client/src/components/handlers.rs +++ /dev/null @@ -1,4 +0,0 @@ -// src/components/handlers.rs -pub mod sidebar; - -pub use sidebar::*; diff --git a/client/src/components/mod.rs b/client/src/components/mod.rs index 05628fd..3df02e3 100644 --- a/client/src/components/mod.rs +++ b/client/src/components/mod.rs @@ -1,5 +1,4 @@ // src/components/mod.rs -pub mod handlers; pub mod intro; pub mod admin; pub mod common; @@ -7,7 +6,6 @@ pub mod form; pub mod auth; pub mod utils; -pub use handlers::*; pub use intro::*; pub use admin::*; pub use common::*; diff --git a/client/src/lib.rs b/client/src/lib.rs index 9c2f83f..cebe294 100644 --- a/client/src/lib.rs +++ b/client/src/lib.rs @@ -9,6 +9,7 @@ pub mod functions; pub mod services; pub mod utils; pub mod buffer; +pub mod sidebar; pub use ui::run_ui; diff --git a/client/src/modes/handlers/event.rs b/client/src/modes/handlers/event.rs index 2f877d5..c085117 100644 --- a/client/src/modes/handlers/event.rs +++ b/client/src/modes/handlers/event.rs @@ -1,8 +1,8 @@ // src/modes/handlers/event.rs use crate::config::binds::config::Config; use crate::config::binds::key_sequences::KeySequenceTracker; -use crate::buffer::functions; -use crate::buffer::{AppView, BufferState, switch_buffer}; +use crate::buffer::{AppView, BufferState, switch_buffer, functions}; +use crate::sidebar::toggle_sidebar; use crate::functions::modes::navigation::add_logic_nav; use crate::functions::modes::navigation::add_logic_nav::SaveLogicResultSender; use crate::functions::modes::navigation::add_table_nav::SaveTableResultSender; @@ -436,7 +436,7 @@ impl EventHandler { let key_code = key_event.code; let modifiers = key_event.modifiers; - if UiStateHandler::toggle_sidebar( + if toggle_sidebar( &mut app_state.ui, config, key_code, diff --git a/client/src/sidebar/logic.rs b/client/src/sidebar/logic.rs new file mode 100644 index 0000000..89f15ae --- /dev/null +++ b/client/src/sidebar/logic.rs @@ -0,0 +1,21 @@ +// src/sidebar/state.rs +use crossterm::event::{KeyCode, KeyModifiers}; +use crate::config::binds::config::Config; +use crate::state::app::state::UiState; + +pub fn toggle_sidebar( + ui_state: &mut UiState, + config: &Config, + key: KeyCode, + modifiers: KeyModifiers, +) -> bool { + if let Some(action) = + config.get_action_for_key_in_mode(&config.keybindings.common, key, modifiers) + { + if action == "toggle_sidebar" { + ui_state.show_sidebar = !ui_state.show_sidebar; + return true; + } + } + false +} diff --git a/client/src/sidebar/mod.rs b/client/src/sidebar/mod.rs new file mode 100644 index 0000000..54bab47 --- /dev/null +++ b/client/src/sidebar/mod.rs @@ -0,0 +1,7 @@ +// src/sidebar/mod.rs + +pub mod ui; +pub mod logic; + +pub use ui::{calculate_sidebar_layout, render_sidebar}; +pub use logic::toggle_sidebar; diff --git a/client/src/components/handlers/sidebar.rs b/client/src/sidebar/ui.rs similarity index 99% rename from client/src/components/handlers/sidebar.rs rename to client/src/sidebar/ui.rs index dcf6662..f0358b0 100644 --- a/client/src/components/handlers/sidebar.rs +++ b/client/src/sidebar/ui.rs @@ -1,4 +1,4 @@ -// src/components/handlers/sidebar.rs +// src/sidebar/ui.rs use ratatui::{ widgets::{Block, List, ListItem}, layout::{Rect, Direction, Layout, Constraint}, diff --git a/client/src/ui/handlers/rat_state.rs b/client/src/ui/handlers/rat_state.rs index 935ab20..8f1a09e 100644 --- a/client/src/ui/handlers/rat_state.rs +++ b/client/src/ui/handlers/rat_state.rs @@ -6,33 +6,19 @@ use crate::state::app::state::UiState; pub struct UiStateHandler; impl UiStateHandler { - pub fn toggle_sidebar( + + pub fn toggle_buffer_list( ui_state: &mut UiState, config: &Config, key: KeyCode, modifiers: KeyModifiers, ) -> bool { - if let Some(action) = config.get_action_for_key_in_mode(&config.keybindings.common, key, modifiers) { - if action == "toggle_sidebar" { - ui_state.show_sidebar = !ui_state.show_sidebar; + if let Some(action) = config.get_common_action(key, modifiers) { + if action == "toggle_buffer_list" { + ui_state.show_buffer_list = !ui_state.show_buffer_list; return true; } } false } - - pub fn toggle_buffer_list( - ui_state: &mut UiState, - config: &Config, - key: KeyCode, - modifiers: KeyModifiers, - ) -> bool { - if let Some(action) = config.get_common_action(key, modifiers) { - if action == "toggle_buffer_list" { - ui_state.show_buffer_list = !ui_state.show_buffer_list; - return true; - } - } - false - } } diff --git a/client/src/ui/handlers/render.rs b/client/src/ui/handlers/render.rs index c731a32..632ecfe 100644 --- a/client/src/ui/handlers/render.rs +++ b/client/src/ui/handlers/render.rs @@ -7,12 +7,12 @@ use crate::components::{ common::dialog::render_dialog, common::find_file_palette, common::search_palette::render_search_palette, - handlers::sidebar::{self, calculate_sidebar_layout}, intro::intro::render_intro, render_background, render_command_line, render_status_line, }; +use crate::sidebar::{calculate_sidebar_layout, render_sidebar}; use crate::buffer::render_buffer_list; use crate::config::colors::themes::Theme; use crate::modes::general::command_navigation::NavigationState; @@ -168,7 +168,7 @@ pub fn render_ui( let (sidebar_area, form_actual_area) = calculate_sidebar_layout(app_state.ui.show_sidebar, main_content_area); if let Some(sidebar_rect) = sidebar_area { - sidebar::render_sidebar( + render_sidebar( f, sidebar_rect, theme,