Skip to content

JITSU-124: feat(console): add search filter with autofocus to the destination catalog - #1418

Merged
priyankxyz merged 1 commit into
newjitsufrom
feat/destination-catalog-search
Jul 23, 2026
Merged

JITSU-124: feat(console): add search filter with autofocus to the destination catalog#1418
priyankxyz merged 1 commit into
newjitsufrom
feat/destination-catalog-search

Conversation

@priyankxyz

Copy link
Copy Markdown
Contributor

What

Adds a search box to the "Add new destination" catalog modal (JITSU-124):

  • Live filtering across destination title, id, tags, and description. Descriptions authored as JSX are matched via their extracted plain text, so search results always agree with what the card visibly says. Groups with no matches are hidden; a "No destinations match" empty state renders when nothing matches. An empty filter shows the full catalog unchanged.
  • Autofocus: the cursor lands in the search box when the modal opens. antd Modal re-grabs focus onto its own wrapper after the open transition, so the catalog exposes a focusSearch() imperative handle and the modal calls it from afterOpenChange (i.e. after the transition, once antd is done with focus).
  • Search telemetry: a debounced (1s) destination_catalog_search product-analytics event carrying the query, result count, and a noResults flag — so zero-result searches surface demand for destinations not in the catalog. Uses the existing useJitsu() frontend-telemetry channel, which stays disabled by default on self-hosted instances (frontendTelemetry.enabled gating 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.
  • Verified manually in the local dev console: filtering ("mix" → Mixpanel, "contacts" → Intercom/Resend/SendGrid via JSX descriptions), empty state, clear button, focus after modal open (document.activeElement is the search input post-transition), and card click-through unchanged.

🤖 Generated with Claude Code

…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>
@priyankxyz
priyankxyz force-pushed the feat/destination-catalog-search branch from f8b1882 to 04e9c34 Compare July 23, 2026 05:45
@priyankxyz
priyankxyz marked this pull request as ready for review July 23, 2026 06:26
@priyankxyz priyankxyz added the deploy:console Auto-deploy console to beta when this PR merges (JITSU-68) label Jul 23, 2026

@jitsu-code-review jitsu-code-review Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@jitsu-code-review jitsu-code-review Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@priyankxyz
priyankxyz merged commit d0e6f39 into newjitsu Jul 23, 2026
6 checks passed
@priyankxyz
priyankxyz deleted the feat/destination-catalog-search branch July 23, 2026 16:08
@github-actions

Copy link
Copy Markdown
Contributor

🚀 deploy:console label detected — triggered a beta console deployment to jitsu-cloud-infra. Track it in the deploy runs (newest at top): https://github.com/jitsucom/jitsu-cloud-infra/actions/workflows/deploy.yaml?query=event%3Aworkflow_dispatch

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

Labels

deploy:console Auto-deploy console to beta when this PR merges (JITSU-68)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants