Skip to content

feat(dashboard): channel keyword search — closes #497 - #536

Open
kitWarse wants to merge 1 commit into
Core-Foundry:mainfrom
kitWarse:feature/497-channel-search
Open

feat(dashboard): channel keyword search — closes #497#536
kitWarse wants to merge 1 commit into
Core-Foundry:mainfrom
kitWarse:feature/497-channel-search

Conversation

@kitWarse

@kitWarse kitWarse commented Jul 26, 2026

Copy link
Copy Markdown

Closes #497


Summary

Implements issue #497 — Allow users to search available channels using keywords.

Changes

dashboard/src/pages/NotificationPreferencesPage.tsx

  • Added channelSearch state and channelSearchRef for focus management after clear
  • Added ilteredChannels useMemo — case-insensitive filter on channelDefinitions by keyword
  • Search input rendered above the delivery matrix with proper �ria-label + �ria-controls linkage
  • Both column headers and toggle cells now iterate ilteredChannels (not the static array)
  • Clear (✕) button returns focus to the input after resetting
  • No-results empty state with
    ole=status + �ria-live=polite + inline Clear search button
  • gridTemplateColumns inline style shrinks the matrix grid to match visible columns

dashboard/src/index.css

  • .channel-search / .channel-search__label / .channel-search__input — flex layout + focus ring
  • .channel-search__clear / .channel-search__clear-inline — clear button styles
  • .notification-preferences__no-results — centred dashed-border empty state

Acceptance Criteria

Criterion Status
Search filters results ✅ filteredChannels updates synchronously on every keystroke
No-results state is displayed ✅ Dashed-border empty state with clear-search action
Search performs efficiently ✅ Synchronous O(n) filter on a 4-item static list — zero async overhead

- Add channelSearch state and ilteredChannels useMemo in NotificationPreferencesPage
- Render a labelled search input above the delivery matrix that filters channels by keyword
- Show a no-results empty state with a 'Clear search' button when nothing matches
- Dynamically update matrix grid-template-columns to match visible channel count
- Add accessible CSS styles for .channel-search, .channel-search__input,
  .channel-search__clear, .channel-search__clear-inline,
  and .notification-preferences__no-results in index.css

Closes Core-Foundry#497
@drips-wave

drips-wave Bot commented Jul 26, 2026

Copy link
Copy Markdown

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

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.

.Add Channel Search

1 participant