Commit Graph
4 Commits
Author SHA1 Message Date
Ignacio Perez 893e382d7f feat: Add complete keyboard navigation system
Implemented a full keyboard navigation system with directional commands (C-h/j/k/l) for moving between views,
vim-style navigation (j/k for rows, h/l for columns), and TAB cycling.
Added table header navigation mode where users can move between columns and change sort order with keyboard shortcuts.
The navigation follows visual position: left sidebar, table, and filter bar can all be reached with directional keys.

Created a keymap system with context-aware bindings that resolve commands based on
current focus (Table, TableHeaders, FilterBar, Sidebar).
Commands are dispatched through a centralized handler that manages focus transitions and view state.
Added helper methods to cycle through column headers with proper wrapping.

Auto-select first task on load when tasks exist, and set initial window focus so keyboard shortcuts
work immediately without requiring a mouse click.
2025-12-28 20:48:19 -03:00
Ignacio Perez 02b88f4326 refactor: Improve error handling and remove code duplication
Extract duplicate UI update logic from reload_tasks and handle_sync into a shared update_ui_from_tasks method.
Add error notifications to StatusBar so users can see when task loading fails instead of silently showing an empty list.
Fix sidebar to only show pending tasks, filtering out deleted and completed ones.

Move magic numbers to constants in ui.rs (sidebar width, table column widths, date format) to make layout adjustments easier.
Standardize all date formatting to ISO 8601 (YYYY-MM-DD) for consistency across the app.
2025-12-28 12:06:49 -03:00
Ignacio Perez 29a23017f2 feat: Refine filters and dropdown UI for task table
Update task table filters and dropdowns, including due-date options, layout tweaks, and style polish.
Keep panel style refinement intact so layout stays stable.
2025-12-27 16:00:38 -03:00
Ignacio Perez 7842b16ccf feat: Implement hierarchical sidebar with projects and tags
Add complete sidebar implementation with:
- ProjectTree model using arena allocator for hierarchical projects
- FilterState model for global filter state management
- Sidebar view with independent scrollable sections
- Project tree with expand/collapse functionality
- Tag selection with toggle support
- Observable filter state shared across components
2025-12-25 10:55:58 -03:00