sidebar as a feature

This commit is contained in:
Priec
2025-08-22 14:11:36 +02:00
parent f127298e5a
commit 414c6957e7
9 changed files with 40 additions and 31 deletions

View File

@@ -1,4 +0,0 @@
// src/components/handlers.rs
pub mod sidebar;
pub use sidebar::*;

View File

@@ -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::*;

View File

@@ -9,6 +9,7 @@ pub mod functions;
pub mod services;
pub mod utils;
pub mod buffer;
pub mod sidebar;
pub use ui::run_ui;

View File

@@ -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,

View File

@@ -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
}

View File

@@ -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;

View File

@@ -1,4 +1,4 @@
// src/components/handlers/sidebar.rs
// src/sidebar/ui.rs
use ratatui::{
widgets::{Block, List, ListItem},
layout::{Rect, Direction, Layout, Constraint},

View File

@@ -6,20 +6,6 @@ use crate::state::app::state::UiState;
pub struct UiStateHandler;
impl UiStateHandler {
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
}
pub fn toggle_buffer_list(
ui_state: &mut UiState,

View File

@@ -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,