Hive Hive
Sign in

fix(products): preload repositories instead of server-side searching

GitHub issue · Closed

Metadata
Source
tuist/hive #18
Updated
Jun 24, 2026
Domains
Hive
Details

Summary

  • The repository dropdown in Settings → Products showed “No results” for every query (e.g. typing tuist while the GitHub App has 200+ matching repos) because Noora’s <.dropdown> is a client-side-filter component and Hive was wiring it for server-side search via phx-keyup. The host has phx-update="ignore", so the hook’s updated() never fires after a portal teleport — the empty state from the first filter pass stays put and the items never become visible.
  • Load every installation-accessible repository once in mount/3 and let Noora’s built-in input filter handle search client-side. The two SettingsLive modules (Products and Product) lose the search_repositories event handler and the repository_query plumbing; the components lose phx-keyup/phx-debounce/name/value on the search inputs.
  • Rename Hive.GitHub.Repositories.search_accessible_repositories/2list_accessible_repositories/1 and drop the now-unused query argument, matches? filter, and Enum.take(20) cap. The new repository_load_error assign (renamed from repository_search_error) still surfaces misconfiguration / API errors inside the modal.

Testing

  • mix compile --warnings-as-errors
  • mix format --check-formatted
  • mix test (256 tests, 0 failures)
  • Verified against production: shelled into the hive-production pod and confirmed Hive.GitHub.Repositories.list_accessible_repositories/1 (the renamed function) returns every tuist/* repo the installation can see.
Comments

No GitHub comments yet.