forked from
tangled.org/core
Monorepo for Tangled — https://tangled.org
1{{ define "repo/pulls/fragments/pullStack" }}
2 <p class="text-sm font-bold p-2 dark:text-white">STACK</p>
3 {{ block "pullList" (list .Stack $) }} {{ end }}
4
5 {{ if gt (len .AbandonedPulls) 0 }}
6 <p class="text-sm font-bold p-2 dark:text-white">ABANDONED PULLS</p>
7 {{ block "pullList" (list .AbandonedPulls $) }} {{ end }}
8 {{ end }}
9{{ end }}
10
11{{ define "summarizedHeader" }}
12 <div class="flex text-sm items-center justify-between w-full">
13 <div class="flex items-center gap-2 min-w-0 flex-1 pr-2">
14 <div class="flex-shrink-0">
15 {{ block "summarizedPullState" . }} {{ end }}
16 </div>
17 <span class="truncate text-sm text-gray-800 dark:text-gray-200">
18 <span class="text-gray-500 dark:text-gray-400">#{{ .PullId }}</span>
19 {{ .Title }}
20 </span>
21 </div>
22
23 <div class="flex-shrink-0">
24 {{ $latestRound := .LastRoundNumber }}
25 {{ $lastSubmission := index .Submissions $latestRound }}
26 {{ $commentCount := len $lastSubmission.Comments }}
27 <span>
28 <div class="inline-flex items-center gap-2">
29 {{ i "message-square" "w-3 h-3 md:hidden" }}
30 {{ $commentCount }}
31 <span class="hidden md:inline">comment{{if ne $commentCount 1}}s{{end}}</span>
32 </div>
33 </span>
34 <span class="mx-2 before:content-['·'] before:select-none"></span>
35 <span>
36 <span class="hidden md:inline">round</span>
37 <span class="font-mono">#{{ $latestRound }}</span>
38 </span>
39 </div>
40 </div>
41{{ end }}
42
43{{ define "summarizedPullState" }}
44 {{ $fgColor := "text-gray-600 dark:text-gray-300" }}
45 {{ $icon := "ban" }}
46
47 {{ if .State.IsOpen }}
48 {{ $fgColor = "text-green-600 dark:text-green-500" }}
49 {{ $icon = "git-pull-request" }}
50 {{ else if .State.IsMerged }}
51 {{ $fgColor = "text-purple-600 dark:text-purple-500" }}
52 {{ $icon = "git-merge" }}
53 {{ else if .State.IsDeleted }}
54 {{ $fgColor = "text-red-600 dark:text-red-500" }}
55 {{ $icon = "git-pull-request-closed" }}
56 {{ end }}
57
58 {{ $style := printf "w-4 h-4 %s" $fgColor }}
59
60 {{ i $icon $style }}
61{{ end }}
62
63{{ define "pullList" }}
64 {{ $list := index . 0 }}
65 {{ $root := index . 1 }}
66 <div class="grid grid-cols-1 rounded border border-gray-200 dark:border-gray-700 divide-y divide-gray-200 dark:divide-gray-700">
67 {{ range $pull := $list }}
68 {{ $isCurrent := false }}
69 {{ with $root.Pull }}
70 {{ $isCurrent = eq $pull.PullId $root.Pull.PullId }}
71 {{ end }}
72 <a href="/{{ $root.RepoInfo.FullName }}/pulls/{{ $pull.PullId }}" class="no-underline hover:no-underline hover:bg-gray-100/25 hover:dark:bg-gray-700/25">
73 <div class="flex gap-2 items-center px-2 {{ if $isCurrent }}bg-gray-100/50 dark:bg-gray-700/50{{ end }}">
74 {{ if $isCurrent }}
75 <div class="flex-shrink-0">
76 {{ i "arrow-right" "w-4 h-4" }}
77 </div>
78 {{ end }}
79 <div class="{{ if not $isCurrent }} pl-6 {{ end }} flex-grow min-w-0 w-full py-2">
80 {{ block "summarizedHeader" $pull }} {{ end }}
81 </div>
82 </div>
83 </a>
84 {{ end }}
85 </div>
86{{ end }}