{{ define "title" }}{{ or .Card.UserHandle .Card.UserDid }}{{ end }} {{ define "extrameta" }} {{ end }} {{ define "content" }}
{{ template "user/fragments/profileCard" .Card }} {{ block "punchcard" .Punchcard }} {{ end }}
{{ block "ownRepos" . }}{{ end }} {{ block "collaboratingRepos" . }}{{ end }}
{{ block "profileTimeline" . }}{{ end }}
{{ end }} {{ define "profileTimeline" }}

ACTIVITY

{{ with .ProfileTimeline }} {{ range $idx, $byMonth := .ByMonth }} {{ with $byMonth }}
{{ if eq $idx 0 }} {{ else }} {{ $s := "s" }} {{ if eq $idx 1 }} {{ $s = "" }} {{ end }}

{{$idx}} month{{$s}} ago

{{ end }} {{ if .IsEmpty }}
No activity for this month
{{ else }}
{{ block "repoEvents" .RepoEvents }} {{ end }} {{ block "issueEvents" .IssueEvents }} {{ end }} {{ block "pullEvents" .PullEvents }} {{ end }}
{{ end }}
{{ end }} {{ else }}

This user does not have any activity yet.

{{ end }} {{ end }}
{{ end }} {{ define "repoEvents" }} {{ if gt (len .) 0 }}
{{ i "book-plus" "w-4 h-4" }} created {{ len . }} {{if eq (len .) 1 }}repository{{else}}repositories{{end}}
{{ range . }}
{{ if .Source }} {{ i "git-fork" "w-4 h-4" }} {{ else }} {{ i "book-plus" "w-4 h-4" }} {{ end }} {{- .Repo.Name -}}
{{ end }}
{{ end }} {{ end }} {{ define "issueEvents" }} {{ $items := .Items }} {{ $stats := .Stats }} {{ if gt (len $items) 0 }}
{{ i "circle-dot" "w-4 h-4" }}
created {{ len $items }} {{if eq (len $items) 1 }}issue{{else}}issues{{end}}
{{ if gt $stats.Open 0 }} {{$stats.Open}} open {{ end }} {{ if gt $stats.Closed 0 }} {{$stats.Closed}} closed {{ end }}
{{ range $items }} {{ $repoOwner := resolve .Metadata.Repo.Did }} {{ $repoName := .Metadata.Repo.Name }} {{ $repoUrl := printf "%s/%s" $repoOwner $repoName }}
{{ if .Open }} {{ i "circle-dot" "w-4 h-4" }} {{ else }} {{ i "ban" "w-4 h-4" }} {{ end }}
#{{ .IssueId }}
{{ end }}
{{ end }} {{ end }} {{ define "pullEvents" }} {{ $items := .Items }} {{ $stats := .Stats }} {{ if gt (len $items) 0 }}
{{ i "git-pull-request" "w-4 h-4" }}
created {{ len $items }} {{if eq (len $items) 1 }}pull request{{else}}pull requests{{end}}
{{ if gt $stats.Open 0 }} {{$stats.Open}} open {{ end }} {{ if gt $stats.Merged 0 }} {{$stats.Merged}} merged {{ end }} {{ if gt $stats.Closed 0 }} {{$stats.Closed}} closed {{ end }}
{{ range $items }} {{ $repoOwner := resolve .Repo.Did }} {{ $repoName := .Repo.Name }} {{ $repoUrl := printf "%s/%s" $repoOwner $repoName }}
{{ if .State.IsOpen }} {{ i "git-pull-request" "w-4 h-4" }} {{ else if .State.IsMerged }} {{ i "git-merge" "w-4 h-4" }} {{ else }} {{ i "git-pull-request-closed" "w-4 h-4" }} {{ end }}
#{{ .PullId }}
{{ end }}
{{ end }} {{ end }} {{ define "ownRepos" }}
PINNED REPOS view all {{ i "chevron-right" "w-4 h-4" }} {{ if and .LoggedInUser (eq .LoggedInUser.Did .Card.UserDid) }} {{ end }}
{{ range .Repos }} {{ template "user/fragments/repoCard" (list $ . false) }} {{ else }}

This user does not have any repos yet.

{{ end }}
{{ end }} {{ define "collaboratingRepos" }} {{ if gt (len .CollaboratingRepos) 0 }}

COLLABORATING ON

{{ range .CollaboratingRepos }} {{ template "user/fragments/repoCard" (list $ . true) }} {{ else }}

This user is not collaborating.

{{ end }}
{{ end }} {{ end }} {{ define "punchcard" }} {{ $now := now }}

PUNCHCARD {{ .Total | int64 | commaFmt }} commits

{{ range .Punches }} {{ $count := .Count }} {{ $theme := "bg-gray-200 dark:bg-gray-700 size-[4px]" }} {{ if lt $count 1 }} {{ $theme = "bg-gray-200 dark:bg-gray-700 size-[4px]" }} {{ else if lt $count 2 }} {{ $theme = "bg-green-200 dark:bg-green-900 size-[5px]" }} {{ else if lt $count 4 }} {{ $theme = "bg-green-300 dark:bg-green-800 size-[5px]" }} {{ else if lt $count 8 }} {{ $theme = "bg-green-400 dark:bg-green-700 size-[6px]" }} {{ else }} {{ $theme = "bg-green-500 dark:bg-green-600 size-[7px]" }} {{ end }} {{ if .Date.After $now }} {{ $theme = "border border-gray-200 dark:border-gray-700 size-[4px]" }} {{ end }}
{{ end }}
{{ end }}