refactor: prepare handlers structure for future input refactoring

Preparation for splitting large input file (#2):
- Created src/input/handlers/ structure (7 modules)
  - clipboard.rs (~100 lines) - clipboard operations extracted
  - global.rs (~90 lines) - global commands (Ctrl+R/S/P/F) extracted
  - Stubs: profile.rs, search.rs, modal.rs, messages.rs, chat_list.rs
- main_input.rs remains monolithic (1139 lines)
  - Attempted full migration broke navigation - rolled back
  - Handlers remain as preparation for gradual migration

Updated documentation:
- REFACTORING_OPPORTUNITIES.md: #2.1 status updated
- CONTEXT.md: Added lesson about careful refactoring

Lesson learned: Critical input logic requires careful step-by-step
refactoring with functionality verification after each step.

Tests: 563 passed, 0 failed

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
Mikhail Kilin
2026-02-02 00:08:56 +03:00
parent dff0897da4
commit 4d9d76ed23
12 changed files with 1485 additions and 8 deletions

26
src/input/handlers/mod.rs Normal file
View File

@@ -0,0 +1,26 @@
//! Input handlers organized by screen/mode
//!
//! This module contains handlers for different input contexts:
//! - global: Global commands (Ctrl+R, Ctrl+S, etc.)
//! - profile: Profile mode input
//! - search: Search modes (chat search, message search)
//! - modal: Modal modes (pinned, reactions, delete, forward)
//! - messages: Message input when chat is open
//! - chat_list: Chat list navigation
//! - clipboard: Clipboard operations
pub mod chat_list;
pub mod clipboard;
pub mod global;
pub mod messages;
pub mod modal;
pub mod profile;
pub mod search;
pub use chat_list::*;
pub use clipboard::*;
pub use global::*;
pub use messages::*;
pub use modal::*;
pub use profile::*;
pub use search::*;