JITSU-124: feat(console): add search filter with autofocus to the destination catalog - #1418
Conversation
…talog Adds a search input to the "Add new destination" catalog modal (JITSU-124): - Live-filters destination cards by title, id, tags, and description; JSX descriptions are matched via their extracted plain text. Groups with no matches are hidden and an empty state is shown. - Focuses the search input when the modal opens. antd Modal moves focus to its own wrapper after the open transition, so the catalog exposes a focusSearch() handle that the Modal calls from afterOpenChange. - Tracks a debounced destination_catalog_search product-telemetry event (query, result count, noResults flag) to surface demand for destinations we don't offer. Product telemetry stays disabled by default on self-hosted instances. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
f8b1882 to
04e9c34
Compare
There was a problem hiding this comment.
Reviewed the changes in and with focus on correctness, user-visible regressions, and security implications.
The new destination search/filter behavior, modal focus handling, and analytics debounce logic all look consistent with existing patterns. I did not find actionable bugs or security issues in this patch.
There was a problem hiding this comment.
Reviewed the changes in webapps/console/components/DestinationsCatalog/DestinationsCatalog.tsx and webapps/console/pages/[workspaceId]/destinations.tsx with focus on correctness, user-visible regressions, and security implications.
The new destination search/filter behavior, modal focus handling, and analytics debounce logic all look consistent with existing patterns. I did not find actionable bugs or security issues in this patch.
|
🚀 |
What
Adds a search box to the "Add new destination" catalog modal (
JITSU-124):Modalre-grabs focus onto its own wrapper after the open transition, so the catalog exposes afocusSearch()imperative handle and the modal calls it fromafterOpenChange(i.e. after the transition, once antd is done with focus).destination_catalog_searchproduct-analytics event carrying the query, result count, and anoResultsflag — so zero-result searches surface demand for destinations not in the catalog. Uses the existinguseJitsu()frontend-telemetry channel, which stays disabled by default on self-hosted instances (frontendTelemetry.enabledgating in_app.tsx).Why
Catalog feedback from onboarding: with ~30 destinations grouped by tag there's no way to filter, much of the list is below the fold, and the picker doesn't take keyboard input on open. The zero-result telemetry doubles as roadmap input for which destinations to add next.
Testing
tsc --noEmit, ESLint, and prettier pass; console unit tests pass.document.activeElementis the search input post-transition), and card click-through unchanged.🤖 Generated with Claude Code