Skip to content

feat(blacklist): add filter chips and saved-view UX #431 - #577

Open
isaac4real-art wants to merge 1 commit into
RevoraOrg:masterfrom
isaac4real-art:uiux/blacklist-filters-saved-views
Open

feat(blacklist): add filter chips and saved-view UX #431#577
isaac4real-art wants to merge 1 commit into
RevoraOrg:masterfrom
isaac4real-art:uiux/blacklist-filters-saved-views

Conversation

@isaac4real-art

Copy link
Copy Markdown

Overview

This PR implements Blacklist filter chips and saved-view UX for the Distribution Dashboard (Issue #431). Users can multi-select filters, persist reusable saved views, sync selections to the URL for sharing, and manage views (save / apply / rename / delete / default / share).

Also verified that Issue #513 (Notification Matrix quiet-hours preview + per-category overrides) is already implemented on master in NotificationPreferences.tsx — no additional code changes were required for that issue.

Related Issue

Closes #431
Related: #513 (already present on master)

Changes

🧩 Blacklist Filter Chips

  • [ADD] src/components/BlacklistFilterChips/
    • Multi-select chip bar for source, severity, region, and created-date groups.
    • Shift+Click contiguous range selection within a group.
    • Keyboard support (arrows, Enter/Space, Delete/Backspace) and overflow chips.

💾 Saved Views

  • [ADD] src/components/BlacklistSavedViews/
    • Dropdown for applying, saving, renaming, deleting, setting default, and sharing views.
    • Empty and error states for load failures / no saved views.

🎛️ Filters Panel + Dashboard Integration

  • [ADD] src/components/BlacklistFiltersPanel/

    • Orchestrates chips + saved views, filters mock blacklist entries, URL param sync (blSource, blSeverity, blRegion, blCreated, blView), and localStorage persistence.
  • [MODIFY] src/pages/DistributionDashboard.tsx

    • Mounts BlacklistFiltersPanel on the dashboard surface.
  • [MODIFY] docs/blacklist-filters-saved-views.md

    • Marks the design as implemented and documents the component structure.

♿ Accessibility / test hygiene (supporting)

  • [MODIFY] RevenuePayoutChart — add role="img" on labeled chart bars; fix stale matchMedia / CSV / hover test assumptions so axe and chart tests stay green with the dashboard integration.

Verification Results

npx vitest run src/components/BlacklistFilterChips src/components/BlacklistSavedViews src/components/BlacklistFiltersPanel
✅ 45/45 passed

npx vitest run src/pages/DistributionDashboard.test.tsx
✅ 21/21 passed

npx vitest run src/components/Notifications/NotificationPreferences.test.tsx
✅ 16/16 passed (#513 quiet-hours / override coverage)

eslint on changed files
✅ clean
Acceptance Criteria Status
Multi-select filter chips (source / severity / region / created date) ✅ Implemented with keyboard + Shift+Click range
Saved views (save / apply / rename / delete / default / share) ✅ Dropdown lifecycle + share URL
URL sync for shareable filter state ✅ Query params written/read by panel
WCAG 2.1 AA / axe coverage ✅ Component + dashboard axe tests
Quiet-hours preview + per-category overrides (#513) ✅ Already on master; tests green

Implements multi-select blacklist filter chips, saved views (save/apply/rename/delete/share), URL sync, and dashboard integration. Also verifies quiet-hours preview (RevoraOrg#513) already present on master.
@drips-wave

drips-wave Bot commented Aug 1, 2026

Copy link
Copy Markdown

@isaac4real-art Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@isaac4real-art

Copy link
Copy Markdown
Author

@thlpkee20-wq done closes #513

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[UI/UX Design] Design Blacklist filter chips and saved-view UX

1 participant