moved add_table to be feature based

This commit is contained in:
filipriec
2025-08-30 14:25:33 +02:00
parent 42db496ad7
commit 10f4b9d8e2
17 changed files with 30 additions and 25 deletions

View File

@@ -1,6 +1,4 @@
// src/components/admin.rs
pub mod add_table;
pub mod add_logic;
pub use add_table::*;
pub use add_logic::*;

View File

@@ -23,7 +23,7 @@ use crate::buffer::state::BufferState;
use crate::modes::handlers::event::EventOutcome;
use crate::pages::register;
use crate::pages::login;
use crate::tui::functions::common::add_table::handle_delete_selected_columns;
use crate::pages::admin_panel::add_table::logic::handle_delete_selected_columns;
use crate::pages::routing::{Router, Page};
use anyhow::Result;

View File

@@ -1,4 +1,3 @@
// src/functions/modes/navigation.rs
pub mod add_table_nav;
pub mod add_logic_nav;

View File

@@ -5,9 +5,9 @@ use crate::buffer::{AppView, BufferState, switch_buffer, toggle_buffer_list};
use crate::sidebar::toggle_sidebar;
use crate::search::event::handle_search_palette_event;
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;
use crate::functions::modes::navigation::add_table_nav;
use crate::functions::add_logic_nav::SaveLogicResultSender;
use crate::pages::admin_panel::add_table::nav::SaveTableResultSender;
use crate::pages::admin_panel::add_table::nav;
use crate::pages::register::suggestions::RoleSuggestionsProvider;
use crate::pages::admin::main::logic::handle_admin_navigation;
use crate::pages::admin::admin::tui::handle_admin_selection;
@@ -517,7 +517,7 @@ impl EventHandler {
Page::AddTable(state) => {
if state.handle_movement(ma) {
// Keep UI focus consistent with inputs vs. outer elements
use crate::state::pages::add_table::AddTableFocus;
use crate::pages::admin_panel::add_table::state::AddTableFocus;
let is_canvas_input = matches!(
state.current_focus,
AddTableFocus::InputTableName
@@ -581,7 +581,7 @@ impl EventHandler {
if let Page::AddTable(add_table_state) = &mut router.current {
let client_clone = self.grpc_client.clone();
let sender_clone = self.save_table_result_sender.clone();
if add_table_nav::handle_add_table_navigation(
if nav::handle_add_table_navigation(
key_event,
config,
app_state,

View File

@@ -1,6 +1,6 @@
// src/pages/admin/admin/state.rs
use ratatui::widgets::ListState;
use crate::state::pages::add_table::AddTableState;
use crate::pages::admin_panel::add_table::state::AddTableState;
use crate::state::pages::add_logic::AddLogicState;
use crate::movement::{move_focus, MovementAction};
use crate::state::app::state::AppState;

View File

@@ -3,7 +3,7 @@ use crate::pages::admin::{AdminFocus, AdminState};
use crate::state::app::state::AppState;
use crate::config::binds::config::Config;
use crate::buffer::state::{BufferState, AppView};
use crate::state::pages::add_table::{AddTableState, LinkDefinition};
use crate::pages::admin_panel::add_table::state::{AddTableState, LinkDefinition};
use ratatui::widgets::ListState;
use crate::state::pages::add_logic::{AddLogicState, AddLogicFocus}; // Added AddLogicFocus import

View File

@@ -1,7 +1,6 @@
// src/tui/functions/common/add_table.rs
use crate::state::pages::add_table::{
AddTableFocus, AddTableState, ColumnDefinition, IndexDefinition,
};
// src/pages/admin_panel/add_table/logic.rs
use crate::pages::admin_panel::add_table::state;
use crate::pages::admin_panel::add_table::state::{AddTableState, AddTableFocus, IndexDefinition, ColumnDefinition};
use crate::services::GrpcClient;
use anyhow::{anyhow, Result};
use common::proto::komp_ac::table_definition::{

View File

@@ -0,0 +1,6 @@
// src/pages/admin_panel/add_table/mod.rs
pub mod ui;
pub mod nav;
pub mod state;
pub mod logic;

View File

@@ -1,12 +1,13 @@
// src/functions/modes/navigation/add_table_nav.rs
// src/pages/admin_panel/add_table/nav.rs
use crate::config::binds::config::Config;
use crate::state::{
app::state::AppState,
pages::add_table::{AddTableFocus, AddTableState},
};
use crate::pages::admin_panel::add_table::state::{AddTableFocus, AddTableState};
use crossterm::event::{KeyEvent};
use ratatui::widgets::TableState;
use crate::tui::functions::common::add_table::{handle_add_column_action, handle_save_table_action};
use crate::pages::admin_panel::add_table::logic::{handle_add_column_action, handle_save_table_action};
use crate::ui::handlers::context::DialogPurpose;
use crate::services::GrpcClient;
use tokio::sync::mpsc;

View File

@@ -1,4 +1,4 @@
// src/state/pages/add_table.rs
// src/pages/admin_panel/add_table/state.rs
use canvas::{DataProvider, AppMode};
use ratatui::widgets::TableState;

View File

@@ -1,7 +1,7 @@
// src/components/admin/add_table.rs
// src/pages/admin_panel/add_table/ui.rs
use crate::config::colors::themes::Theme;
use crate::state::app::state::AppState;
use crate::state::pages::add_table::{AddTableFocus, AddTableState};
use crate::pages::admin_panel::add_table::state::{AddTableFocus, AddTableState};
use canvas::{render_canvas, FormEditor};
use ratatui::{
layout::{Alignment, Constraint, Direction, Layout, Rect},

View File

@@ -0,0 +1,3 @@
// src/pages/admin_panel/mod.rs
pub mod add_table;

View File

@@ -6,3 +6,4 @@ pub mod login;
pub mod register;
pub mod forms;
pub mod admin;
pub mod admin_panel;

View File

@@ -2,8 +2,8 @@
use crate::state::pages::{
auth::AuthState,
add_logic::AddLogicState,
add_table::AddTableState,
};
use crate::pages::admin_panel::add_table::state::AddTableState;
use crate::pages::admin::AdminState;
use crate::pages::forms::FormState;
use crate::pages::login::LoginFormState;

View File

@@ -1,5 +1,4 @@
// src/state/pages.rs
pub mod auth;
pub mod add_table;
pub mod add_logic;

View File

@@ -1,4 +1,3 @@
// src/tui/functions/common.rs
pub mod logout;
pub mod add_table;

View File

@@ -2,9 +2,9 @@
use crate::components::{
admin::add_logic::render_add_logic,
admin::render_add_table,
render_background,
};
use crate::pages::admin_panel::add_table::ui::render_add_table;
use crate::pages::login::render_login;
use crate::pages::register::render_register;
use crate::pages::intro::render_intro;