this repo has no description
1{{ define "title" }}{{ or .Card.UserHandle .Card.UserDid }}{{ end }} 2 3{{ define "profileContent" }} 4 <div id="all-repos" class="md:col-span-4 order-2 md:order-2"> 5 <div class="grid grid-cols-1 gap-4"> 6 {{ block "ownRepos" . }}{{ end }} 7 {{ block "collaboratingRepos" . }}{{ end }} 8 </div> 9 </div> 10 <div class="md:col-span-4 order-3 md:order-3"> 11 {{ block "profileTimeline" . }}{{ end }} 12 </div> 13{{ end }} 14 15{{ define "profileTimeline" }} 16 <p class="text-sm font-bold px-2 pb-4 dark:text-white">ACTIVITY</p> 17 <div class="flex flex-col gap-4 relative"> 18 {{ if .ProfileTimeline.IsEmpty }} 19 <p class="dark:text-white">This user does not have any activity yet.</p> 20 {{ end }} 21 22 {{ with .ProfileTimeline }} 23 {{ range $idx, $byMonth := .ByMonth }} 24 {{ with $byMonth }} 25 {{ if not .IsEmpty }} 26 <div class="border border-gray-200 dark:border-gray-700 rounded-sm py-4 px-6"> 27 <p class="text-sm font-mono mb-2 text-gray-500 dark:text-gray-400"> 28 {{ if eq $idx 0 }} 29 this month 30 {{ else }} 31 {{$idx}} month{{if ne $idx 1}}s{{end}} ago 32 {{ end }} 33 </p> 34 35 <div class="flex flex-col gap-1"> 36 {{ block "repoEvents" .RepoEvents }} {{ end }} 37 {{ block "issueEvents" .IssueEvents }} {{ end }} 38 {{ block "pullEvents" .PullEvents }} {{ end }} 39 </div> 40 </div> 41 {{ end }} 42 {{ end }} 43 {{ end }} 44 {{ end }} 45 </div> 46{{ end }} 47 48{{ define "repoEvents" }} 49 {{ if gt (len .) 0 }} 50 <details> 51 <summary class="list-none cursor-pointer hover:text-gray-500 hover:dark:text-gray-400"> 52 <div class="flex flex-wrap items-center gap-2"> 53 {{ i "book-plus" "w-4 h-4" }} 54 created {{ len . }} {{if eq (len .) 1 }}repository{{else}}repositories{{end}} 55 </div> 56 </summary> 57 <div class="py-2 text-sm flex flex-col gap-3 mb-2"> 58 {{ range . }} 59 <div class="flex flex-wrap items-center justify-between gap-2"> 60 <span class="flex items-center gap-2"> 61 <span class="text-gray-500 dark:text-gray-400"> 62 {{ if .Source }} 63 {{ i "git-fork" "w-4 h-4" }} 64 {{ else }} 65 {{ i "book-plus" "w-4 h-4" }} 66 {{ end }} 67 </span> 68 <a href="/{{ resolve .Repo.Did }}/{{ .Repo.Name }}" class="no-underline hover:underline"> 69 {{- .Repo.Name -}} 70 </a> 71 </span> 72 73 {{ with .Repo.RepoStats }} 74 {{ with .Language }} 75 <div class="flex gap-2 items-center text-xs font-mono text-gray-400 "> 76 <div class="size-2 rounded-full" 77 style="background: radial-gradient(circle at 35% 35%, color-mix(in srgb, {{ langColor . }} 70%, white), {{ langColor . }} 30%, color-mix(in srgb, {{ langColor . }} 85%, black));"></div> 78 <span>{{ . }}</span> 79 </div> 80 {{end }} 81 {{end }} 82 </div> 83 {{ end }} 84 </div> 85 </details> 86 {{ end }} 87{{ end }} 88 89{{ define "issueEvents" }} 90 {{ $items := .Items }} 91 {{ $stats := .Stats }} 92 93 {{ if gt (len $items) 0 }} 94 <details> 95 <summary class="list-none cursor-pointer hover:text-gray-500 hover:dark:text-gray-400"> 96 <div class="flex flex-wrap items-center gap-2"> 97 {{ i "circle-dot" "w-4 h-4" }} 98 99 <div> 100 created {{ len $items }} {{if eq (len $items) 1 }}issue{{else}}issues{{end}} 101 </div> 102 103 {{ if gt $stats.Open 0 }} 104 <span class="px-2 py-1/2 text-sm rounded text-white bg-green-600 dark:bg-green-700"> 105 {{$stats.Open}} open 106 </span> 107 {{ end }} 108 109 {{ if gt $stats.Closed 0 }} 110 <span class="px-2 py-1/2 text-sm rounded text-white bg-gray-800 dark:bg-gray-700"> 111 {{$stats.Closed}} closed 112 </span> 113 {{ end }} 114 115 </div> 116 </summary> 117 <div class="py-2 text-sm flex flex-col gap-3 mb-2"> 118 {{ range $items }} 119 {{ $repoOwner := resolve .Metadata.Repo.Did }} 120 {{ $repoName := .Metadata.Repo.Name }} 121 {{ $repoUrl := printf "%s/%s" $repoOwner $repoName }} 122 123 <div class="flex gap-2 text-gray-600 dark:text-gray-300"> 124 {{ if .Open }} 125 <span class="text-green-600 dark:text-green-500"> 126 {{ i "circle-dot" "w-4 h-4" }} 127 </span> 128 {{ else }} 129 <span class="text-gray-500 dark:text-gray-400"> 130 {{ i "ban" "w-4 h-4" }} 131 </span> 132 {{ end }} 133 <div class="flex-none min-w-8 text-right"> 134 <span class="text-gray-500 dark:text-gray-400">#{{ .IssueId }}</span> 135 </div> 136 <div class="break-words max-w-full"> 137 <a href="/{{$repoUrl}}/issues/{{ .IssueId }}" class="no-underline hover:underline"> 138 {{ .Title -}} 139 </a> 140 on 141 <a href="/{{$repoUrl}}" class="no-underline hover:underline whitespace-nowrap"> 142 {{$repoUrl}} 143 </a> 144 </div> 145 </div> 146 {{ end }} 147 </div> 148 </details> 149 {{ end }} 150{{ end }} 151 152{{ define "pullEvents" }} 153 {{ $items := .Items }} 154 {{ $stats := .Stats }} 155 {{ if gt (len $items) 0 }} 156 <details> 157 <summary class="list-none cursor-pointer hover:text-gray-500 hover:dark:text-gray-400"> 158 <div class="flex flex-wrap items-center gap-2"> 159 {{ i "git-pull-request" "w-4 h-4" }} 160 161 <div> 162 created {{ len $items }} {{if eq (len $items) 1 }}pull request{{else}}pull requests{{end}} 163 </div> 164 165 {{ if gt $stats.Open 0 }} 166 <span class="px-2 py-1/2 text-sm rounded text-white bg-green-600 dark:bg-green-700"> 167 {{$stats.Open}} open 168 </span> 169 {{ end }} 170 171 {{ if gt $stats.Merged 0 }} 172 <span class="px-2 py-1/2 text-sm rounded text-white bg-purple-600 dark:bg-purple-700"> 173 {{$stats.Merged}} merged 174 </span> 175 {{ end }} 176 177 178 {{ if gt $stats.Closed 0 }} 179 <span class="px-2 py-1/2 text-sm rounded text-white bg-gray-800 dark:bg-gray-700"> 180 {{$stats.Closed}} closed 181 </span> 182 {{ end }} 183 184 </div> 185 </summary> 186 <div class="py-2 text-sm flex flex-col gap-3 mb-2"> 187 {{ range $items }} 188 {{ $repoOwner := resolve .Repo.Did }} 189 {{ $repoName := .Repo.Name }} 190 {{ $repoUrl := printf "%s/%s" $repoOwner $repoName }} 191 192 <div class="flex gap-2 text-gray-600 dark:text-gray-300"> 193 {{ if .State.IsOpen }} 194 <span class="text-green-600 dark:text-green-500"> 195 {{ i "git-pull-request" "w-4 h-4" }} 196 </span> 197 {{ else if .State.IsMerged }} 198 <span class="text-purple-600 dark:text-purple-500"> 199 {{ i "git-merge" "w-4 h-4" }} 200 </span> 201 {{ else }} 202 <span class="text-gray-600 dark:text-gray-300"> 203 {{ i "git-pull-request-closed" "w-4 h-4" }} 204 </span> 205 {{ end }} 206 <div class="flex-none min-w-8 text-right"> 207 <span class="text-gray-500 dark:text-gray-400">#{{ .PullId }}</span> 208 </div> 209 <div class="break-words max-w-full"> 210 <a href="/{{$repoUrl}}/pulls/{{ .PullId }}" class="no-underline hover:underline"> 211 {{ .Title -}} 212 </a> 213 on 214 <a href="/{{$repoUrl}}" class="no-underline hover:underline whitespace-nowrap"> 215 {{$repoUrl}} 216 </a> 217 </div> 218 </div> 219 {{ end }} 220 </div> 221 </details> 222 {{ end }} 223{{ end }} 224 225{{ define "ownRepos" }} 226 <div> 227 <div class="text-sm font-bold px-2 pb-4 dark:text-white flex items-center gap-2"> 228 <a href="/@{{ or $.Card.UserHandle $.Card.UserDid }}?tab=repos" 229 class="flex text-black dark:text-white items-center gap-2 no-underline hover:no-underline group"> 230 <span>PINNED REPOS</span> 231 </a> 232 {{ if and .LoggedInUser (eq .LoggedInUser.Did .Card.UserDid) }} 233 <button 234 hx-get="profile/edit-pins" 235 hx-target="#all-repos" 236 class="py-0 font-normal text-sm flex gap-2 items-center group"> 237 {{ i "pencil" "w-3 h-3" }} 238 {{ i "loader-circle" "w-4 h-4 animate-spin hidden group-[.htmx-request]:inline" }} 239 </button> 240 {{ end }} 241 </div> 242 <div id="repos" class="grid grid-cols-1 gap-4 items-stretch"> 243 {{ range .Repos }} 244 <div class="border border-gray-200 dark:border-gray-700 rounded-sm"> 245 {{ template "user/fragments/repoCard" (list $ . false) }} 246 </div> 247 {{ else }} 248 <p class="dark:text-white">This user does not have any pinned repos.</p> 249 {{ end }} 250 </div> 251 </div> 252{{ end }} 253 254{{ define "collaboratingRepos" }} 255 {{ if gt (len .CollaboratingRepos) 0 }} 256 <div> 257 <p class="text-sm font-bold px-2 pb-4 dark:text-white">COLLABORATING ON</p> 258 <div id="collaborating" class="grid grid-cols-1 gap-4"> 259 {{ range .CollaboratingRepos }} 260 <div class="border border-gray-200 dark:border-gray-700 rounded-sm"> 261 {{ template "user/fragments/repoCard" (list $ . true) }} 262 </div> 263 {{ else }} 264 <p class="px-6 dark:text-white">This user is not collaborating.</p> 265 {{ end }} 266 </div> 267 </div> 268 {{ end }} 269{{ end }} 270