chore: griddy work

This commit is contained in:
Hein
2026-02-13 17:09:49 +02:00
parent 7ecafc8461
commit b49d008745
24 changed files with 2184 additions and 22 deletions

View File

@@ -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