chore: griddy work
This commit is contained in:
@@ -983,14 +983,43 @@ persist={{
|
||||
**Deliverable**: Global search with keyboard-activated overlay
|
||||
|
||||
### Phase 5: Sorting & Filtering
|
||||
- [ ] Sorting via TanStack Table (click header, Shift+Click for multi)
|
||||
- [ ] Sort indicators in headers
|
||||
- [ ] Column filtering UI (per-column filter dropdowns)
|
||||
- [ ] Filter operators (contains, exact, between, etc.)
|
||||
- [x] Sorting via TanStack Table (click header, Shift+Click for multi)
|
||||
- [x] Sort indicators in headers
|
||||
- [x] Column filtering UI (right-click context menu for sort/filter options)
|
||||
- [x] Filter operators (contains, equals, startsWith, endsWith, notContains, isEmpty, isNotEmpty, between, greaterThan, lessThan, includes, excludes, etc.)
|
||||
- [x] Text, number, enum, and boolean filter types
|
||||
- [x] Filter UI with operator dropdown and type-specific inputs
|
||||
- [x] Filter status indicators (blue/gray icons in headers)
|
||||
- [x] Debounced text input (300ms)
|
||||
- [x] Apply/Clear buttons for filter controls
|
||||
- [ ] Date filtering (Phase 5.5 - requires @mantine/dates)
|
||||
- [ ] Server-side sort/filter support (`manualSorting`, `manualFiltering`)
|
||||
- [ ] Sort/filter state persistence
|
||||
|
||||
**Deliverable**: Data manipulation features powered by TanStack Table
|
||||
**Deliverable**: Complete data manipulation features powered by TanStack Table
|
||||
|
||||
**Files Created** (9 components):
|
||||
- `src/Griddy/features/filtering/types.ts` — Filter type system
|
||||
- `src/Griddy/features/filtering/operators.ts` — Operator definitions for all 4 types
|
||||
- `src/Griddy/features/filtering/filterFunctions.ts` — TanStack FilterFn implementations
|
||||
- `src/Griddy/features/filtering/FilterInput.tsx` — Text/number input with debouncing
|
||||
- `src/Griddy/features/filtering/FilterSelect.tsx` — Multi-select for enums
|
||||
- `src/Griddy/features/filtering/FilterBoolean.tsx` — Radio group for booleans
|
||||
- `src/Griddy/features/filtering/ColumnFilterButton.tsx` — Filter status icon
|
||||
- `src/Griddy/features/filtering/ColumnFilterPopover.tsx` — Filter UI popover
|
||||
- `src/Griddy/features/filtering/ColumnFilterContextMenu.tsx` — Right-click context menu
|
||||
|
||||
**Files Modified**:
|
||||
- `src/Griddy/rendering/TableHeader.tsx` — Integrated context menu + filter popover
|
||||
- `src/Griddy/core/columnMapper.ts` — Set default filterFn for filterable columns
|
||||
- `src/Griddy/core/types.ts` — Added FilterConfig to GriddyColumn
|
||||
- `src/Griddy/core/constants.ts` — Added CSS class names and defaults
|
||||
- `src/Griddy/styles/griddy.module.css` — Filter UI styling
|
||||
- `src/Griddy/Griddy.stories.tsx` — Added 6 filtering examples
|
||||
|
||||
**Tests**:
|
||||
- `playwright.config.ts` — Playwright configuration
|
||||
- `tests/e2e/filtering-context-menu.spec.ts` — 8 comprehensive E2E test cases
|
||||
|
||||
### Phase 6: In-Place Editing
|
||||
- [ ] Implement `EditableCell.tsx` with editor mounting
|
||||
|
||||
Reference in New Issue
Block a user