Skip to content

feat(web): repo detail page + clickable repo names#485

Merged
wesbillman merged 2 commits intomainfrom
web-empty-state
May 5, 2026
Merged

feat(web): repo detail page + clickable repo names#485
wesbillman merged 2 commits intomainfrom
web-empty-state

Conversation

@wesbillman
Copy link
Copy Markdown
Collaborator

@wesbillman wesbillman commented May 5, 2026

Summary

  • Improves the web empty state layout — centered layout with Sprout branding, clear copy ("This relay is empty"), and "Open in Sprout" CTA
  • Fixes "Connect to Relay" button text → "Open in Sprout" everywhere (button, sidebar)
  • Adds a /repos/$repoId route with a full repo detail page showing name, description, clone URLs (with copy-to-clipboard + error handling), owner/contributors, external web link, and "Open in Sprout" CTA
  • Makes repo names in the list view clickable — they now navigate to the detail page
  • Extracts PubkeyAvatar into a shared component reused by both the sidebar and detail page
  • useRepo(id) hook reuses the ["repos"] query cache via select — no extra WebSocket connections

Known limitation

  • Repo IDs containing dots (e.g. my-lib.core) will 404 on direct URL navigation due to the relay's SPA fallback treating dotted paths as static assets. Tracked as a relay-side follow-up in router.rs.

Test plan

  • Navigate to a relay with repos — verify repo names are clickable links
  • Click a repo name — verify it navigates to /repos/<id> with correct detail page
  • Verify clone URLs display and copy button works (including error feedback)
  • Verify back link returns to repo list
  • Navigate to a non-existent repo ID — verify "not found" state
  • Direct URL navigation to /repos/<id> works (reload the page)
  • Verify sidebar still shows "Open in Sprout" button and People section
  • Verify empty relay state shows centered layout with correct copy

🤖 Generated with Claude Code

Replace the cramped empty-repos view (stuck under a "Repositories"
header with a dead sidebar) with a clean full-page centered layout
using the Sprout icon, clearer copy, and an "Open in Sprout" CTA.

Rename "Connect to Relay" to "Open in Sprout" everywhere.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@wesbillman wesbillman changed the title fix(web): improve empty state layout and button copy feat(web): repo detail page + clickable repo names May 5, 2026
Adds a /repos/$repoId route with a detail page showing repo name,
description, clone URLs (with copy button), owner/contributors, and
an "Open in Sprout" CTA. Repo names in the list now link to their
detail page. Extracts PubkeyAvatar into a shared component and fixes
stale sidebar comment.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@wesbillman wesbillman merged commit b7bc761 into main May 5, 2026
14 checks passed
@wesbillman wesbillman deleted the web-empty-state branch May 5, 2026 21:39
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.

1 participant