Skip to content

fix(datatable): auto-apply filters, fix enum labels, always-visible header, filtered empty state#1129

Merged
steilerDev merged 3 commits into
betafrom
fix/1128-datatable-ux-bugs
Mar 21, 2026
Merged

fix(datatable): auto-apply filters, fix enum labels, always-visible header, filtered empty state#1129
steilerDev merged 3 commits into
betafrom
fix/1128-datatable-ux-bugs

Conversation

@steilerDev
Copy link
Copy Markdown
Owner

Summary

  • Enum filter labels now toggle checkboxes when clicked (proper <label> wrapping)
  • All filters auto-apply on change — no more "Apply" button
  • Table header row always visible even with 0 results
  • Filtered-empty state shows "No items match" + "Clear filters" button (distinct from truly-empty state)

Fixes #1128

Test plan

  • Quality Gates pass

Co-Authored-By: Claude frontend-developer (Haiku 4.5) noreply@anthropic.com
Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com

claude added 3 commits March 21, 2026 22:17
…eader, filtered empty state

- Enum filter: wrap checkbox+label in <label> so clicking text toggles
- All filters: remove Apply button, call onChange immediately on interaction
- Table header always renders even with 0 items
- Differentiate filtered-empty ("No items match") vs truly-empty states

Fixes #1128

Co-Authored-By: Claude frontend-developer (Haiku 4.5) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Remove Apply/Clear button assertions (buttons removed in auto-apply change).
Add tests verifying onChange called immediately on filter interaction.
Fix empty state test to expect table header always present.

Co-Authored-By: Claude qa-integration-tester (Sonnet 4.6) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@steilerDev steilerDev merged commit 5e706d7 into beta Mar 21, 2026
16 of 31 checks passed
@github-actions
Copy link
Copy Markdown
Contributor

🎉 This PR is included in version 2.2.0-beta.12 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

steilerDev pushed a commit that referenced this pull request Mar 22, 2026
…gates to onApply

Root cause: PR #1129 made filters call onChange immediately, but
DataTableFilterPopover passed setLocalValue as onChange, so values
got stuck in local state and never reached onApply → onFilter.

Fix: Remove localValue intermediary — pass onApply directly as
onChange to filter components. Add outside-click + Escape close
handler to DataTableHeader (popover no longer closes on every
filter change, allowing multi-select in enum filters).

Add auto-apply test coverage in DataTableFilterPopover.test.tsx.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
steilerDev added a commit that referenced this pull request Mar 22, 2026
…gates to onApply (#1134)

Root cause: PR #1129 made filters call onChange immediately, but
DataTableFilterPopover passed setLocalValue as onChange, so values
got stuck in local state and never reached onApply → onFilter.

Fix: Remove localValue intermediary — pass onApply directly as
onChange to filter components. Add outside-click + Escape close
handler to DataTableHeader (popover no longer closes on every
filter change, allowing multi-select in enum filters).

Add auto-apply test coverage in DataTableFilterPopover.test.tsx.

Co-authored-by: Claude product-architect (Opus 4.6) <noreply@anthropic.com>
@steilerDev steilerDev deleted the fix/1128-datatable-ux-bugs branch March 22, 2026 12:25
@github-actions
Copy link
Copy Markdown
Contributor

🎉 This PR is included in version 2.2.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants