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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user