feat(search): add search history functionality with dropdown and persistence

- Implement SearchHistoryDropdown component for displaying recent searches
- Add useSearchHistory hook for managing search history in localStorage
- Integrate search history into SearchOverlay for user convenience
- Update GridToolbar to support filter presets
- Enhance SearchOverlay with close button and history display
This commit is contained in:
2026-02-15 13:52:36 +02:00
parent 6226193ab5
commit 9ec2e73640
42 changed files with 2026 additions and 780 deletions

View File

@@ -1055,10 +1055,10 @@ persist={{
- [x] Column hiding/visibility (TanStack `columnVisibility`) - COMPLETE
- [x] Export to CSV - COMPLETE
- [x] Toolbar component (column visibility + export) - COMPLETE
- [ ] Column pinning via TanStack Table `columnPinning` (deferred)
- [ ] Header grouping via TanStack Table `getHeaderGroups()` (deferred)
- [ ] Data grouping via TanStack Table `getGroupedRowModel()` (deferred)
- [ ] Column reordering (drag-and-drop + TanStack `columnOrder`) (deferred)
- [x] Column pinning via TanStack Table `columnPinning`
- [x] Header grouping via TanStack Table `getHeaderGroups()`
- [x] Data grouping via TanStack Table `getGroupedRowModel()`
- [x] Column reordering (drag-and-drop + TanStack `columnOrder`)
**Deliverable**: Advanced table features - PARTIAL ✅ (core features complete)
@@ -1202,8 +1202,8 @@ The grid follows WAI-ARIA grid pattern:
- [ ] **Sort/filter state persistence** - Persist column filters and sorting state
- [ ] **Undo/redo for edits** - Ctrl+Z/Ctrl+Y for edit history with state snapshots
- [ ] **RemoteServerAdapter class** - Formal adapter pattern for server data (currently using callbacks)
- [ ] **Error boundary** - Graceful error handling for data fetch failures
- [ ] **Loading states UI** - Skeleton loaders and shimmer effects during data fetch
- [x] **Error boundary** - Graceful error handling with retry (GriddyErrorBoundary, onError/onRetry props) ✅
- [x] **Loading states UI** - Skeleton rows with shimmer + translucent overlay spinner (isLoading prop) ✅
### Advanced Data Features
- [ ] **Tree/hierarchical data** - Parent-child rows with expand/collapse (nested data structures)
@@ -1216,13 +1216,13 @@ The grid follows WAI-ARIA grid pattern:
- [ ] **Validation system** - Validate edits before commit (min/max, regex, custom validators)
- [ ] **Tab-to-next-editable-cell** - Navigate between editable cells with Tab key
- [ ] **Inline validation feedback** - Show validation errors in edit mode
- [ ] **Custom cell renderers** - Support for charts, progress bars, badges, images
- [x] **Custom cell renderers** - ProgressBar, Badge, Image, Sparkline renderers via `renderer` + `rendererMeta`
### Filtering & Search
- [ ] **Quick filters** - Dropdown filters in headers (Excel-style column filters)
- [ ] **Advanced search** - Multi-column search with boolean operators
- [ ] **Filter presets** - Save and load filter combinations
- [ ] **Search history** - Recent searches dropdown
- [x] **Quick filters** - Checkbox list of unique values in filter popover (`filterConfig.quickFilter: true`) ✅
- [x] **Advanced search** - Multi-condition search with AND/OR/NOT operators (AdvancedSearchPanel) ✅
- [x] **Filter presets** - Save/load/delete named filter presets to localStorage (FilterPresetsMenu) ✅
- [x] **Search history** - Recent searches dropdown with localStorage persistence (SearchHistoryDropdown) ✅
### Export & Import
- [ ] **Export to CSV/Excel** - Download current view with filters/sorts applied (load all data)
@@ -1248,7 +1248,7 @@ The grid follows WAI-ARIA grid pattern:
### Accessibility & Testing
- [ ] **Accessibility improvements** - Enhanced ARIA roles, screen reader announcements
- [ ] **Accessibility audit** - WCAG 2.1 AA compliance verification
- [ ] **E2E test suite** - Playwright tests for all features (expand from current filtering tests)
- [x] **E2E test suite** - 34 Playwright tests: 8 filtering + 26 Phase 10 feature tests, all passing ✅
- [ ] **Visual regression tests** - Screenshot comparison tests
- [ ] **Performance tests** - Automated performance benchmarking
@@ -1274,36 +1274,39 @@ The grid follows WAI-ARIA grid pattern:
## Implementation Priority
**High Priority** (Next phase):
**High Priority** (Next):
1. Column layout persistence
2. Validation system for editors
3. Loading states UI
4. Tab-to-next-editable-cell navigation
5. Context menu enhancements
3. Tab-to-next-editable-cell navigation
4. Context menu enhancements
**Medium Priority**:
1. Tree/hierarchical data
2. Master-detail rows
3. Export to CSV/Excel (enhanced)
4. Quick filters (Excel-style)
5. Keyboard shortcuts help overlay
3. Export enhancements (selected rows, Excel format)
4. Keyboard shortcuts help overlay
5. Copy/paste support
**Low Priority** (Nice to have):
1. Mobile/touch support
2. Plugin architecture
3. Undo/redo
4. Advanced search
5. Real-time collaboration
4. Real-time collaboration
5. Column/row spanning
---
## Completed Milestones
1. ✅ Phase 1-9: Core, virtualization, selection, search, filtering, editing, pagination, advanced features, polish
2. ✅ Phase 7.5: Infinite scroll
3. ✅ Phase 8 completion: Column pinning, header grouping, data grouping, column reordering
4. ✅ Phase 10 batch 1 (7 features): Error boundary, loading states, custom renderers, quick filters, advanced search, filter presets, search history
5. ✅ E2E test suite: 34 Playwright tests (all passing)
## Next Steps
1. ✅ All Phase 1-9 features complete
2. ✅ Infinite scroll implemented
3. ✅ Column pinning implemented
4. ✅ Header grouping implemented
5. ✅ Data grouping implemented
6. ✅ Column reordering implemented
7. Choose Phase 10 features to implement based on user needs
8. Update main package README with Griddy documentation
1. Choose remaining Phase 10 features based on user needs
2. Column layout persistence (highest priority remaining)
3. Validation system for editors
4. Update main package README with Griddy documentation