forked from tangled.org/core
Monorepo for Tangled — https://tangled.org
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 $ .) }} 17 {{ else if .Star }} 18 {{ template "timeline/fragments/starEvent" (list $ .) }} 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 {{ $event := index . 1 }} 33 {{ $repo := $event.Repo }} 34 {{ $source := $event.Source }} 35 {{ $userHandle := resolve $repo.Did }} 36 <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"> 37 {{ template "user/fragments/picHandleLink" $repo.Did }} 38 {{ with $source }} 39 {{ $sourceDid := resolve .Did }} 40 forked 41 <a href="/{{ $sourceDid }}/{{ .Name }}"class="no-underline hover:underline"> 42 {{ $sourceDid }}/{{ .Name }} 43 </a> 44 to 45 <a href="/{{ $userHandle }}/{{ $repo.Name }}" class="no-underline hover:underline">{{ $repo.Name }}</a> 46 {{ else }} 47 created 48 <a href="/{{ $userHandle }}/{{ $repo.Name }}" class="no-underline hover:underline"> 49 {{ $repo.Name }} 50 </a> 51 {{ end }} 52 <span class="text-gray-700 dark:text-gray-400 text-xs">{{ template "repo/fragments/time" $repo.Created }}</span> 53 </div> 54 {{ with $repo }} 55 {{ template "user/fragments/repoCard" (list $root . true true (dict "IsStarred" $event.IsStarred "RepoAt" .RepoAt "Stats" (dict "StarCount" $event.StarCount))) }} 56 {{ end }} 57{{ end }} 58 59{{ define "timeline/fragments/starEvent" }} 60 {{ $root := index . 0 }} 61 {{ $event := index . 1 }} 62 {{ $star := $event.Star }} 63 {{ with $star }} 64 {{ $starrerHandle := resolve .StarredByDid }} 65 {{ $repoOwnerHandle := resolve .Repo.Did }} 66 <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"> 67 {{ template "user/fragments/picHandleLink" $starrerHandle }} 68 starred 69 <a href="/{{ $repoOwnerHandle }}/{{ .Repo.Name }}" class="no-underline hover:underline"> 70 {{ $repoOwnerHandle | truncateAt30 }}/{{ .Repo.Name }} 71 </a> 72 <span class="text-gray-700 dark:text-gray-400 text-xs">{{ template "repo/fragments/time" .Created }}</span> 73 </div> 74 {{ with .Repo }} 75 {{ template "user/fragments/repoCard" (list $root . true true (dict "IsStarred" $event.IsStarred "RepoAt" .RepoAt "Stats" (dict "StarCount" $event.StarCount))) }} 76 {{ end }} 77 {{ end }} 78{{ end }} 79 80{{ define "timeline/fragments/followEvent" }} 81 {{ $root := index . 0 }} 82 {{ $event := index . 1 }} 83 {{ $follow := $event.Follow }} 84 {{ $profile := $event.Profile }} 85 {{ $followStats := $event.FollowStats }} 86 {{ $followStatus := $event.FollowStatus }} 87 88 {{ $userHandle := resolve $follow.UserDid }} 89 {{ $subjectHandle := resolve $follow.SubjectDid }} 90 <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"> 91 {{ template "user/fragments/picHandleLink" $userHandle }} 92 followed 93 {{ template "user/fragments/picHandleLink" $subjectHandle }} 94 <span class="text-gray-700 dark:text-gray-400 text-xs">{{ template "repo/fragments/time" $follow.FollowedAt }}</span> 95 </div> 96 {{ template "user/fragments/followCard" 97 (dict 98 "LoggedInUser" $root.LoggedInUser 99 "UserDid" $follow.SubjectDid 100 "Profile" $profile 101 "FollowStatus" $followStatus 102 "FollowersCount" $followStats.Followers 103 "FollowingCount" $followStats.Following) }} 104{{ end }}