this repo has no description
1{{ define "timeline/fragments/timeline" }} 2 <div class="py-4"> 3 <div class="px-6 pb-4"> 4 <p class="text-xl font-bold dark:text-white">Timeline</p> 5 </div> 6 7 <div class="flex flex-col gap-4"> 8 {{ range $i, $e := .Timeline }} 9 <div class="relative"> 10 {{ if ne $i 0 }} 11 <div class="absolute left-8 -top-4 w-px h-4 bg-gray-300 dark:bg-gray-600"></div> 12 {{ end }} 13 {{ with $e }} 14 <div class="flex flex-col divide-y divide-gray-200 dark:divide-gray-700 border border-gray-200 dark:border-gray-700 rounded-sm"> 15 {{ if .Repo }} 16 {{ template "timeline/fragments/repoEvent" (list $ .Repo .Source) }} 17 {{ else if .Star }} 18 {{ template "timeline/fragments/starEvent" (list $ .Star) }} 19 {{ else if .Follow }} 20 {{ template "timeline/fragments/followEvent" (list $ .) }} 21 {{ end }} 22 </div> 23 {{ end }} 24 </div> 25 {{ end }} 26 </div> 27 </div> 28{{ end }} 29 30{{ define "timeline/fragments/repoEvent" }} 31 {{ $root := index . 0 }} 32 {{ $repo := index . 1 }} 33 {{ $source := index . 2 }} 34 {{ $userHandle := resolve $repo.Did }} 35 <div class="pl-6 py-2 bg-white dark:bg-gray-800 text-gray-600 dark:text-gray-300 flex flex-wrap items-center gap-2 text-sm"> 36 {{ template "user/fragments/picHandleLink" $repo.Did }} 37 {{ with $source }} 38 {{ $sourceDid := resolve .Did }} 39 forked 40 <a href="/{{ $sourceDid }}/{{ .Name }}"class="no-underline hover:underline"> 41 {{ $sourceDid }}/{{ .Name }} 42 </a> 43 to 44 <a href="/{{ $userHandle }}/{{ $repo.Name }}" class="no-underline hover:underline">{{ $repo.Name }}</a> 45 {{ else }} 46 created 47 <a href="/{{ $userHandle }}/{{ $repo.Name }}" class="no-underline hover:underline"> 48 {{ $repo.Name }} 49 </a> 50 {{ end }} 51 <span class="text-gray-700 dark:text-gray-400 text-xs">{{ template "repo/fragments/time" $repo.Created }}</span> 52 </div> 53 {{ with $repo }} 54 {{ template "user/fragments/repoCard" (list $root . true) }} 55 {{ end }} 56{{ end }} 57 58{{ define "timeline/fragments/starEvent" }} 59 {{ $root := index . 0 }} 60 {{ $star := index . 1 }} 61 {{ with $star }} 62 {{ $starrerHandle := resolve .StarredByDid }} 63 {{ $repoOwnerHandle := resolve .Repo.Did }} 64 <div class="pl-6 py-2 bg-white dark:bg-gray-800 text-gray-600 dark:text-gray-300 flex flex-wrap items-center gap-2 text-sm"> 65 {{ template "user/fragments/picHandleLink" $starrerHandle }} 66 starred 67 <a href="/{{ $repoOwnerHandle }}/{{ .Repo.Name }}" class="no-underline hover:underline"> 68 {{ $repoOwnerHandle | truncateAt30 }}/{{ .Repo.Name }} 69 </a> 70 <span class="text-gray-700 dark:text-gray-400 text-xs">{{ template "repo/fragments/time" .Created }}</span> 71 </div> 72 {{ with .Repo }} 73 {{ template "user/fragments/repoCard" (list $root . true) }} 74 {{ end }} 75 {{ end }} 76{{ end }} 77 78{{ define "timeline/fragments/followEvent" }} 79 {{ $root := index . 0 }} 80 {{ $event := index . 1 }} 81 {{ $follow := $event.Follow }} 82 {{ $profile := $event.Profile }} 83 {{ $stat := $event.FollowStats }} 84 85 {{ $userHandle := resolve $follow.UserDid }} 86 {{ $subjectHandle := resolve $follow.SubjectDid }} 87 <div class="pl-6 py-2 bg-white dark:bg-gray-800 text-gray-600 dark:text-gray-300 flex flex-wrap items-center gap-2 text-sm"> 88 {{ template "user/fragments/picHandleLink" $userHandle }} 89 followed 90 {{ template "user/fragments/picHandleLink" $subjectHandle }} 91 <span class="text-gray-700 dark:text-gray-400 text-xs">{{ template "repo/fragments/time" $follow.FollowedAt }}</span> 92 </div> 93 <div class="py-4 px-6 drop-shadow-sm rounded bg-white dark:bg-gray-800 flex flex-col md:flex-row md:items-center gap-4"> 94 <div class="flex items-center gap-4 flex-1"> 95 <div class="flex-shrink-0 max-h-full w-24 h-24"> 96 <img alt="" class="object-cover rounded-full p-2" src="{{ fullAvatar $subjectHandle }}" /> 97 </div> 98 99 <div class="flex-1 min-h-0 justify-around flex flex-col"> 100 <a href="/{{ $subjectHandle }}"> 101 <span class="font-bold dark:text-white overflow-hidden text-ellipsis whitespace-nowrap max-w-full">{{ $subjectHandle | truncateAt30 }}</span> 102 </a> 103 {{ with $profile }} 104 {{ with .Description }} 105 <p class="text-sm pb-2 md:pb-2">{{.}}</p> 106 {{ end }} 107 {{ end }} 108 {{ with $stat }} 109 <div class="text-sm flex items-center gap-2 my-2 overflow-hidden text-ellipsis whitespace-nowrap max-w-full"> 110 <span class="flex-shrink-0">{{ i "users" "size-4" }}</span> 111 <span id="followers"><a href="/{{ $subjectHandle }}?tab=followers">{{ .Followers }} followers</a></span> 112 <span class="select-none after:content-['·']"></span> 113 <span id="following"><a href="/{{ $subjectHandle }}?tab=following">{{ .Following }} following</a></span> 114 </div> 115 {{ end }} 116 </div> 117 </div> 118 119 {{ if and $root.LoggedInUser (ne $event.FollowStatus.String "IsSelf") }} 120 <div class="flex-shrink-0 w-fit ml-auto"> 121 {{ template "user/fragments/follow" (dict "UserDid" $follow.SubjectDid "FollowStatus" $event.FollowStatus) }} 122 </div> 123 {{ end }} 124 </div> 125{{ end }}