Skip to content

refactor: TUI state extraction, screener table, and multi-view navigation#13

Merged
HanSoBored merged 11 commits intomainfrom
refactor/tui-state-extraction-and-screener-table
Apr 27, 2026
Merged

refactor: TUI state extraction, screener table, and multi-view navigation#13
HanSoBored merged 11 commits intomainfrom
refactor/tui-state-extraction-and-screener-table

Conversation

@HanSoBored
Copy link
Copy Markdown
Collaborator

Summary

  • Extracted TUI state into dedicated modules: PopupState, MouseState, ScreenerService for cleaner separation of concerns
  • Added modular key handler with NavResult enum for clean event dispatch across navigation, screener, and contract filter handlers
  • Added shared table utilities (table_common) and new screener_table widget with sortable columns (Change%, Volume, Symbol)
  • Added ContractType model with LP/LF/IP/IF filtering via keyboard shortcuts (1-4, 0)
  • Improved multi-view navigation between Symbol List (l), Screener (s), and Stats Dashboard (Tab)
  • Refactored runner with generation tracking for stale-result detection and extracted timeout constants
  • Updated README with new features, key bindings, and TUI architecture documentation

Commits

  1. docs(readme) — Update with multi-view TUI, contract type filtering, and screener table features
  2. refactor(models) — Add ContractType enum and integrate into Symbol model
  3. refactor(tui) — Extract PopupState, MouseState, and ScreenerService for cleaner state management
  4. refactor(tui) — Add modular key handler with NavResult and multi-view navigation
  5. refactor(tui) — Add shared table utilities and screener table widget
  6. refactor(tui) — Improve runner with generation tracking and timeout constants
  7. refactor(tui) — Improve footer with active filter display and header with contract types
  8. refactor(screener) — Improve calculator with better sorting and fetcher with error handling
  9. refactor(models) — Improve price parsing and statistics with zero-copy iteration
  10. refactor(cli) — Improve argument parsing and main with screener integration

Verification

  • cargo build — Clean
  • cargo test — 77 tests pass
  • cargo clippy — No warnings

@HanSoBored HanSoBored force-pushed the refactor/tui-state-extraction-and-screener-table branch from e9cff87 to c8545b9 Compare April 27, 2026 15:30
@HanSoBored HanSoBored self-assigned this Apr 27, 2026
Copy link
Copy Markdown
Collaborator Author

@HanSoBored HanSoBored left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@HanSoBored HanSoBored merged commit 611874a into main Apr 27, 2026
3 checks passed
@HanSoBored HanSoBored deleted the refactor/tui-state-extraction-and-screener-table branch April 27, 2026 15:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant