diff options
| author | Joe Mou <dev@mou.fo> | 2026-07-21 17:46:58 -0400 |
|---|---|---|
| committer | Joe Mou <dev@mou.fo> | 2026-07-22 23:25:26 -0400 |
| commit | 6240cf1c6b73b7ed34ff5816b53333382c229f5c (patch) | |
| tree | 4e8a8e379aa466c8a0d1d298266700a589b1a445 /cgithub/views/_refs.eta | |
| parent | 9b556ffe6c0c0528697e15f7f4f35107de212ce1 (diff) | |
Add async branch/tag dropdown and latest-commit bar
Adds two lazily-fetched UI pieces to match vanilla GitHub while keeping
initial page loads plain server-rendered HTML: a branch/tag selector
(native <dialog>, CSS anchor-positioned to its button, light-dismissed
via closedby="any") and a latest-commit bar above the file listing.
Both are populated by new /api/:owner/:repo/refs/:type and
/api/:owner/:repo/latest-commit/:branch/:path routes; the latter calls
GitHub's own /latest-commit JSON endpoint (the same one the React UI
uses) rather than scraping the full commit history page.
Diffstat (limited to 'cgithub/views/_refs.eta')
| -rw-r--r-- | cgithub/views/_refs.eta | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/cgithub/views/_refs.eta b/cgithub/views/_refs.eta new file mode 100644 index 0000000..2450c4b --- /dev/null +++ b/cgithub/views/_refs.eta @@ -0,0 +1,17 @@ +<% if (it.refs.length === 0) { %> + <div class="ref-selector-empty">No <%= it.type %> found.</div> +<% } else { %> + <ul class="ref-selector-items"> + <% for (const ref of it.refs) { %> + <li> + <a href="/<%= it.repo.owner %>/<%= it.repo.name %>/tree/<%= ref.name %>"><%= ref.name %></a> + <% if (ref.isDefault) { %><span class="ref-selector-badge">default</span><% } %> + </li> + <% } %> + </ul> +<% } %> +<% if (it.hasMore) { %> + <div class="ref-selector-more"> + <a href="/<%= it.repo.owner %>/<%= it.repo.name %>/<%= it.type %>">View all <%= it.type %></a> + </div> +<% } %> |
