this repo has no description
1{{define "notifications/fragments/item"}} 2<div class="border border-gray-200 dark:border-gray-700 rounded-sm p-3 hover:bg-gray-50 dark:hover:bg-gray-700 transition-colors {{if not .Read}}bg-blue-50 dark:bg-blue-900/20{{end}}"> 3 {{if .Issue}} 4 {{template "issueNotification" .}} 5 {{else if .Pull}} 6 {{template "pullNotification" .}} 7 {{else if .Repo}} 8 {{template "repoNotification" .}} 9 {{else if eq .Type "followed"}} 10 {{template "followNotification" .}} 11 {{else}} 12 {{template "genericNotification" .}} 13 {{end}} 14</div> 15{{end}} 16 17{{define "issueNotification"}} 18{{$url := printf "/%s/%s/issues/%d" (resolve .Repo.Did) .Repo.Name .Issue.IssueId}} 19<a 20 href="{{$url}}" 21 class="block no-underline hover:no-underline text-inherit -m-3 p-3" 22> 23 <div class="flex items-center justify-between"> 24 <div class="min-w-0 flex-1"> 25 <!-- First line: icon + actor action --> 26 <div class="flex items-center gap-2 text-gray-900 dark:text-white"> 27 {{if eq .Type "issue_created"}} 28 <span class="text-green-600 dark:text-green-500"> 29 {{ i "circle-dot" "w-4 h-4" }} 30 </span> 31 {{else if eq .Type "issue_commented"}} 32 <span class="text-gray-500 dark:text-gray-400"> 33 {{ i "message-circle" "w-4 h-4" }} 34 </span> 35 {{else if eq .Type "issue_closed"}} 36 <span class="text-gray-500 dark:text-gray-400"> 37 {{ i "ban" "w-4 h-4" }} 38 </span> 39 {{end}} 40 {{template "user/fragments/picHandle" (resolve .ActorDid)}} 41 {{if eq .Type "issue_created"}} 42 <span class="text-gray-500 dark:text-gray-400">opened issue</span> 43 {{else if eq .Type "issue_commented"}} 44 <span class="text-gray-500 dark:text-gray-400">commented on issue</span> 45 {{else if eq .Type "issue_closed"}} 46 <span class="text-gray-500 dark:text-gray-400">closed issue</span> 47 {{end}} 48 {{if not .Read}} 49 <div class="w-2 h-2 bg-blue-500 rounded-full flex-shrink-0 ml-1"></div> 50 {{end}} 51 </div> 52 53 <div class="text-sm text-gray-600 dark:text-gray-400 mt-0.5 ml-6 flex items-center gap-1"> 54 <span class="text-gray-500 dark:text-gray-400">#{{.Issue.IssueId}}</span> 55 <span class="text-gray-900 dark:text-white truncate">{{.Issue.Title}}</span> 56 <span>on</span> 57 <span class="font-medium text-gray-900 dark:text-white">{{resolve .Repo.Did}}/{{.Repo.Name}}</span> 58 </div> 59 </div> 60 61 <div class="text-xs text-gray-500 dark:text-gray-400 flex-shrink-0 ml-2"> 62 {{ template "repo/fragments/time" .Created }} 63 </div> 64 </div> 65</a> 66{{end}} 67 68{{define "pullNotification"}} 69{{$url := printf "/%s/%s/pulls/%d" (resolve .Repo.Did) .Repo.Name .Pull.PullId}} 70<a 71 href="{{$url}}" 72 class="block no-underline hover:no-underline text-inherit -m-3 p-3" 73> 74 <div class="flex items-center justify-between"> 75 <div class="min-w-0 flex-1"> 76 <div class="flex items-center gap-2 text-gray-900 dark:text-white"> 77 {{if eq .Type "pull_created"}} 78 <span class="text-green-600 dark:text-green-500"> 79 {{ i "git-pull-request-create" "w-4 h-4" }} 80 </span> 81 {{else if eq .Type "pull_commented"}} 82 <span class="text-gray-500 dark:text-gray-400"> 83 {{ i "message-circle" "w-4 h-4" }} 84 </span> 85 {{else if eq .Type "pull_merged"}} 86 <span class="text-purple-600 dark:text-purple-500"> 87 {{ i "git-merge" "w-4 h-4" }} 88 </span> 89 {{else if eq .Type "pull_closed"}} 90 <span class="text-red-600 dark:text-red-500"> 91 {{ i "git-pull-request-closed" "w-4 h-4" }} 92 </span> 93 {{end}} 94 {{template "user/fragments/picHandle" (resolve .ActorDid)}} 95 {{if eq .Type "pull_created"}} 96 <span class="text-gray-500 dark:text-gray-400">opened pull request</span> 97 {{else if eq .Type "pull_commented"}} 98 <span class="text-gray-500 dark:text-gray-400">commented on pull request</span> 99 {{else if eq .Type "pull_merged"}} 100 <span class="text-gray-500 dark:text-gray-400">merged pull request</span> 101 {{else if eq .Type "pull_closed"}} 102 <span class="text-gray-500 dark:text-gray-400">closed pull request</span> 103 {{end}} 104 {{if not .Read}} 105 <div class="w-2 h-2 bg-blue-500 rounded-full flex-shrink-0 ml-1"></div> 106 {{end}} 107 </div> 108 109 <div class="text-sm text-gray-600 dark:text-gray-400 mt-0.5 ml-6 flex items-center gap-1"> 110 <span class="text-gray-500 dark:text-gray-400">#{{.Pull.PullId}}</span> 111 <span class="text-gray-900 dark:text-white truncate">{{.Pull.Title}}</span> 112 <span>on</span> 113 <span class="font-medium text-gray-900 dark:text-white">{{resolve .Repo.Did}}/{{.Repo.Name}}</span> 114 </div> 115 </div> 116 117 <div class="text-xs text-gray-500 dark:text-gray-400 flex-shrink-0 ml-2"> 118 {{ template "repo/fragments/time" .Created }} 119 </div> 120 </div> 121</a> 122{{end}} 123 124{{define "repoNotification"}} 125{{$url := printf "/%s/%s" (resolve .Repo.Did) .Repo.Name}} 126<a 127 href="{{$url}}" 128 class="block no-underline hover:no-underline text-inherit -m-3 p-3" 129> 130 <div class="flex items-center justify-between"> 131 <div class="flex items-center gap-2 min-w-0 flex-1"> 132 <span class="text-yellow-500 dark:text-yellow-400"> 133 {{ i "star" "w-4 h-4" }} 134 </span> 135 136 <div class="min-w-0 flex-1"> 137 <!-- Single line for stars: actor action subject --> 138 <div class="flex items-center gap-1 text-gray-900 dark:text-white"> 139 {{template "user/fragments/picHandle" (resolve .ActorDid)}} 140 <span class="text-gray-500 dark:text-gray-400">starred</span> 141 <span class="font-medium">{{resolve .Repo.Did}}/{{.Repo.Name}}</span> 142 {{if not .Read}} 143 <div class="w-2 h-2 bg-blue-500 rounded-full flex-shrink-0 ml-1"></div> 144 {{end}} 145 </div> 146 </div> 147 </div> 148 149 <div class="text-xs text-gray-500 dark:text-gray-400 flex-shrink-0 ml-2"> 150 {{ template "repo/fragments/time" .Created }} 151 </div> 152 </div> 153</a> 154{{end}} 155 156{{define "followNotification"}} 157{{$url := printf "/%s" (resolve .ActorDid)}} 158<a 159 href="{{$url}}" 160 class="block no-underline hover:no-underline text-inherit -m-3 p-3" 161> 162 <div class="flex items-center justify-between"> 163 <div class="flex items-center gap-2 min-w-0 flex-1"> 164 <span class="text-blue-600 dark:text-blue-400"> 165 {{ i "user-plus" "w-4 h-4" }} 166 </span> 167 168 <div class="min-w-0 flex-1"> 169 <div class="flex items-center gap-1 text-gray-900 dark:text-white"> 170 {{template "user/fragments/picHandle" (resolve .ActorDid)}} 171 <span class="text-gray-500 dark:text-gray-400">followed you</span> 172 {{if not .Read}} 173 <div class="w-2 h-2 bg-blue-500 rounded-full flex-shrink-0 ml-1"></div> 174 {{end}} 175 </div> 176 </div> 177 </div> 178 179 <div class="text-xs text-gray-500 dark:text-gray-400 flex-shrink-0 ml-2"> 180 {{ template "repo/fragments/time" .Created }} 181 </div> 182 </div> 183</a> 184{{end}} 185 186{{define "genericNotification"}} 187<a 188 href="#" 189 class="block no-underline hover:no-underline text-inherit -m-3 p-3" 190> 191 <div class="flex items-center justify-between"> 192 <div class="flex items-center gap-2 min-w-0 flex-1"> 193 <span class="{{if not .Read}}text-blue-600 dark:text-blue-400{{else}}text-gray-500 dark:text-gray-400{{end}}"> 194 {{ i "bell" "w-4 h-4" }} 195 </span> 196 197 <div class="min-w-0 flex-1"> 198 <div class="flex items-center gap-1 text-gray-900 dark:text-white"> 199 <span>New notification</span> 200 {{if not .Read}} 201 <div class="w-2 h-2 bg-blue-500 rounded-full flex-shrink-0 ml-1"></div> 202 {{end}} 203 </div> 204 </div> 205 </div> 206 207 <div class="text-xs text-gray-500 dark:text-gray-400 flex-shrink-0 ml-2"> 208 {{ template "repo/fragments/time" .Created }} 209 </div> 210 </div> 211</a> 212{{end}}