From 10f4b9d8e266932b5b2d018e8e598d5ffd19451e Mon Sep 17 00:00:00 2001 From: filipriec Date: Sat, 30 Aug 2025 14:25:33 +0200 Subject: [PATCH] moved add_table to be feature based --- client/src/components/admin.rs | 2 -- client/src/dialog/logic.rs | 2 +- client/src/functions/modes/navigation.rs | 1 - client/src/modes/handlers/event.rs | 10 +++++----- client/src/pages/admin/admin/state.rs | 2 +- client/src/pages/admin/main/logic.rs | 2 +- .../admin_panel/add_table/logic.rs} | 7 +++---- client/src/pages/admin_panel/add_table/mod.rs | 6 ++++++ .../admin_panel/add_table/nav.rs} | 7 ++++--- .../admin_panel/add_table/state.rs} | 2 +- .../add_table.rs => pages/admin_panel/add_table/ui.rs} | 4 ++-- client/src/pages/admin_panel/mod.rs | 3 +++ client/src/pages/mod.rs | 1 + client/src/pages/routing/router.rs | 2 +- client/src/state/pages.rs | 1 - client/src/tui/functions/common.rs | 1 - client/src/ui/handlers/render.rs | 2 +- 17 files changed, 30 insertions(+), 25 deletions(-) rename client/src/{tui/functions/common/add_table.rs => pages/admin_panel/add_table/logic.rs} (97%) create mode 100644 client/src/pages/admin_panel/add_table/mod.rs rename client/src/{functions/modes/navigation/add_table_nav.rs => pages/admin_panel/add_table/nav.rs} (98%) rename client/src/{state/pages/add_table.rs => pages/admin_panel/add_table/state.rs} (99%) rename client/src/{components/admin/add_table.rs => pages/admin_panel/add_table/ui.rs} (99%) create mode 100644 client/src/pages/admin_panel/mod.rs diff --git a/client/src/components/admin.rs b/client/src/components/admin.rs index cf826ee..c52855c 100644 --- a/client/src/components/admin.rs +++ b/client/src/components/admin.rs @@ -1,6 +1,4 @@ // src/components/admin.rs -pub mod add_table; pub mod add_logic; -pub use add_table::*; pub use add_logic::*; diff --git a/client/src/dialog/logic.rs b/client/src/dialog/logic.rs index a68f206..7954e5b 100644 --- a/client/src/dialog/logic.rs +++ b/client/src/dialog/logic.rs @@ -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; diff --git a/client/src/functions/modes/navigation.rs b/client/src/functions/modes/navigation.rs index 441c299..c9a474c 100644 --- a/client/src/functions/modes/navigation.rs +++ b/client/src/functions/modes/navigation.rs @@ -1,4 +1,3 @@ // src/functions/modes/navigation.rs -pub mod add_table_nav; pub mod add_logic_nav; diff --git a/client/src/modes/handlers/event.rs b/client/src/modes/handlers/event.rs index 3ac6a81..ee681d5 100644 --- a/client/src/modes/handlers/event.rs +++ b/client/src/modes/handlers/event.rs @@ -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, diff --git a/client/src/pages/admin/admin/state.rs b/client/src/pages/admin/admin/state.rs index ac71ff6..2797b56 100644 --- a/client/src/pages/admin/admin/state.rs +++ b/client/src/pages/admin/admin/state.rs @@ -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; diff --git a/client/src/pages/admin/main/logic.rs b/client/src/pages/admin/main/logic.rs index e88fe90..57c4a18 100644 --- a/client/src/pages/admin/main/logic.rs +++ b/client/src/pages/admin/main/logic.rs @@ -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 diff --git a/client/src/tui/functions/common/add_table.rs b/client/src/pages/admin_panel/add_table/logic.rs similarity index 97% rename from client/src/tui/functions/common/add_table.rs rename to client/src/pages/admin_panel/add_table/logic.rs index 999562c..8c1db4f 100644 --- a/client/src/tui/functions/common/add_table.rs +++ b/client/src/pages/admin_panel/add_table/logic.rs @@ -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::{ diff --git a/client/src/pages/admin_panel/add_table/mod.rs b/client/src/pages/admin_panel/add_table/mod.rs new file mode 100644 index 0000000..bb9d3fc --- /dev/null +++ b/client/src/pages/admin_panel/add_table/mod.rs @@ -0,0 +1,6 @@ +// src/pages/admin_panel/add_table/mod.rs + +pub mod ui; +pub mod nav; +pub mod state; +pub mod logic; diff --git a/client/src/functions/modes/navigation/add_table_nav.rs b/client/src/pages/admin_panel/add_table/nav.rs similarity index 98% rename from client/src/functions/modes/navigation/add_table_nav.rs rename to client/src/pages/admin_panel/add_table/nav.rs index 2de1486..e59f76c 100644 --- a/client/src/functions/modes/navigation/add_table_nav.rs +++ b/client/src/pages/admin_panel/add_table/nav.rs @@ -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; diff --git a/client/src/state/pages/add_table.rs b/client/src/pages/admin_panel/add_table/state.rs similarity index 99% rename from client/src/state/pages/add_table.rs rename to client/src/pages/admin_panel/add_table/state.rs index 4e5cd11..2887053 100644 --- a/client/src/state/pages/add_table.rs +++ b/client/src/pages/admin_panel/add_table/state.rs @@ -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; diff --git a/client/src/components/admin/add_table.rs b/client/src/pages/admin_panel/add_table/ui.rs similarity index 99% rename from client/src/components/admin/add_table.rs rename to client/src/pages/admin_panel/add_table/ui.rs index 504c9ac..5293da4 100644 --- a/client/src/components/admin/add_table.rs +++ b/client/src/pages/admin_panel/add_table/ui.rs @@ -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}, diff --git a/client/src/pages/admin_panel/mod.rs b/client/src/pages/admin_panel/mod.rs new file mode 100644 index 0000000..4608c09 --- /dev/null +++ b/client/src/pages/admin_panel/mod.rs @@ -0,0 +1,3 @@ +// src/pages/admin_panel/mod.rs + +pub mod add_table; diff --git a/client/src/pages/mod.rs b/client/src/pages/mod.rs index 4625b93..d0b1ed9 100644 --- a/client/src/pages/mod.rs +++ b/client/src/pages/mod.rs @@ -6,3 +6,4 @@ pub mod login; pub mod register; pub mod forms; pub mod admin; +pub mod admin_panel; diff --git a/client/src/pages/routing/router.rs b/client/src/pages/routing/router.rs index 914660b..3245805 100644 --- a/client/src/pages/routing/router.rs +++ b/client/src/pages/routing/router.rs @@ -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; diff --git a/client/src/state/pages.rs b/client/src/state/pages.rs index 280b94e..58dff4f 100644 --- a/client/src/state/pages.rs +++ b/client/src/state/pages.rs @@ -1,5 +1,4 @@ // src/state/pages.rs pub mod auth; -pub mod add_table; pub mod add_logic; diff --git a/client/src/tui/functions/common.rs b/client/src/tui/functions/common.rs index a863cd5..7786e41 100644 --- a/client/src/tui/functions/common.rs +++ b/client/src/tui/functions/common.rs @@ -1,4 +1,3 @@ // src/tui/functions/common.rs pub mod logout; -pub mod add_table; diff --git a/client/src/ui/handlers/render.rs b/client/src/ui/handlers/render.rs index 1d33d7e..f5dae27 100644 --- a/client/src/ui/handlers/render.rs +++ b/client/src/ui/handlers/render.rs @@ -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;