main / internal/interface/web/templates/browse_tree.templ
1.8 KB · Templ Raw
1package templates
2
3import "gitgud/internal/domain"
4
5templ BrowseTree(user *domain.User, repo *domain.Repository, ref, path string, branches []string, entries []domain.TreeEntry, readme string) {
6 @Layout(repo.OwnerName+"/"+repo.Name+" · gitgud", user) {
7 @repoHeader(repo, "code")
8 <div class="mb-3 flex items-center justify-between gap-3">
9 <div class="flex items-center gap-3">
10 @branchSwitcher(repo, ref, branches)
11 <div class="font-mono text-sm">
12 for i, c := range treeCrumbs(repo, ref, path) {
13 if i > 0 {
14 <span class="text-faint"> / </span>
15 }
16 <a class="link" href={ templ.SafeURL(c.Href) }>{ c.Name }</a>
17 }
18 </div>
19 </div>
20 <a class="meta hover:text-ink" href={ templ.SafeURL(repoPath(repo, "/commits/"+ref)) }>Commits →</a>
21 </div>
22 <div class="card overflow-hidden">
23 <table class="w-full text-sm">
24 <tbody>
25 for _, e := range entries {
26 <tr class="row border-b border-line last:border-0">
27 <td class="px-4 py-2.5">
28 <a class="flex items-center gap-2.5" href={ templ.SafeURL(entryHref(repo, ref, e)) }>
29 if e.IsDir {
30 <span class="text-accent">▸</span>
31 <span class="font-mono text-ink">{ e.Name }</span>
32 } else {
33 <span class="text-faint">·</span>
34 <span class="font-mono text-muted">{ e.Name }</span>
35 }
36 </a>
37 </td>
38 <td class="px-4 py-2.5 text-right font-mono text-xs text-faint">
39 if !e.IsDir {
40 { humanSize(e.Size) }
41 }
42 </td>
43 </tr>
44 }
45 </tbody>
46 </table>
47 </div>
48 if readme != "" {
49 <div class="card mt-6 overflow-hidden">
50 <div class="border-b border-line px-5 py-2.5 font-mono text-xs text-muted">README.md</div>
51 <div class="prose-dark px-5 py-4">
52 @templ.Raw(readme)
53 </div>
54 </div>
55 }
56 }
57}