feat(explore): add search input box to explore tab views #352

Closed
opened 2026-07-08 08:21:49 +00:00 by fuzzy · 0 comments
Owner

What

Add a search input box to each Explore tab view (Users, Orgs, Repositories) so users can filter results by name/query.

Why

The Explore tab (#351) renders a static list of users/orgs/repos but provides no way to search or filter them. On any reasonably-sized instance the list will be too long to navigate manually.

UX

  • Search box appears at the top of each explore view
  • Typing filters the list in real-time (client-side for loaded data)
  • Enter triggers an API search query (server-side)
  • Escape clears the search and resets to the full list
  • A / keybinding focuses the search box (common Vim/less convention)

API mapping

View Endpoint
Users GET /api/v1/users/search?q={query}
Orgs GET /api/v1/orgs?q={query} or GET /api/v1/users/search?type=organization
Repos GET /api/v1/repos/search?q={query}

States

  • Idle — empty search box, full list shown
  • Typing — incremental client-side filter
  • Searching — debounced API call in flight, show spinner
  • No results — "No results for '{query}'" message
  • Error — API error with retry prompt

Future

  • Search history (persisted per session)
  • Fuzzy matching client-side
## What Add a search input box to each Explore tab view (Users, Orgs, Repositories) so users can filter results by name/query. ## Why The Explore tab (#351) renders a static list of users/orgs/repos but provides no way to search or filter them. On any reasonably-sized instance the list will be too long to navigate manually. ## UX - Search box appears at the top of each explore view - Typing filters the list in real-time (client-side for loaded data) - `Enter` triggers an API search query (server-side) - `Escape` clears the search and resets to the full list - A `/` keybinding focuses the search box (common Vim/less convention) ## API mapping | View | Endpoint | |------|----------| | Users | `GET /api/v1/users/search?q={query}` | | Orgs | `GET /api/v1/orgs?q={query}` or `GET /api/v1/users/search?type=organization` | | Repos | `GET /api/v1/repos/search?q={query}` | ## States - **Idle** — empty search box, full list shown - **Typing** — incremental client-side filter - **Searching** — debounced API call in flight, show spinner - **No results** — "No results for '{query}'" message - **Error** — API error with retry prompt ## Future - Search history (persisted per session) - Fuzzy matching client-side
fuzzy self-assigned this 2026-07-08 08:21:49 +00:00
fuzzy added this to the (deleted) project 2026-07-08 08:21:49 +00:00
fuzzy changed title from add search input box to explore view to feat(explore): add search input box to explore tab views 2026-07-08 08:22:07 +00:00
fuzzy closed this issue 2026-07-08 09:52:52 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
thwap/steeper#352
No description provided.