mirror of
https://github.com/callumalpass/tasknotes.git
synced 2026-07-22 12:50:26 +00:00
- Implement TaskSearchFilter for ephemeral task filtering - Case-insensitive full-text search across task properties - Searches title, status, priority, tags, contexts, projects - Supports custom visible properties from view config - Performance monitoring for slow operations (>100ms) - Seamless virtual scrolling integration - Search filtering applied before virtual scroll threshold check - Automatically switches between virtual/normal rendering based on filtered count - Maintains performance with large datasets (tested with 30k+ tasks) - Virtual scrolling activates at 100 filtered items threshold - Create SearchBox UI component - Lucide search icon positioned outside input (left) - Debounced input (300ms) to reduce filter operations - Clear button with keyboard support (Escape key) - Proper cleanup to prevent memory leaks - BEM-style CSS with Obsidian design tokens - BasesViewBase ready for reusability - Opt-in pattern via enableSearch flag - Shared setupSearch(), handleSearch(), applySearchFilter() - Component lifecycle integration for automatic cleanup - Ready for use in KanbanView, CalendarView, etc. - Add test coverage - 24 unit tests for TaskSearchFilter - 24 unit tests for SearchBox component - Integration test placeholders for E2E testing - Update TaskListView to use inherited search - Enable search with single flag: enableSearch = true - Apply filtering in renderFlat, renderGrouped methods - Preserves all existing functionality (grouping, sub-grouping, etc.) |
||
|---|---|---|
| .. | ||
| __mocks__ | ||
| components | ||
| helpers | ||
| integration | ||
| manual | ||
| services | ||
| types | ||
| unit | ||
| utils | ||
| coverage-report.md | ||
| test-setup.ts | ||