···
{{define "notifications/fragments/item"}}
4
-
w-full mx-auto rounded drop-shadow-sm dark:text-white bg-white dark:bg-gray-800 px-2 md:px-6 py-4 transition-colors
5
-
{{if not .Read}}bg-blue-50 dark:bg-blue-900/20 border border-blue-500 dark:border-sky-800{{end}}
6
-
flex gap-2 items-center
2
+
<a href="{{ template "notificationUrl" . }}" class="block no-underline hover:no-underline">
5
+
w-full mx-auto rounded drop-shadow-sm dark:text-white bg-white dark:bg-gray-800 px-2 md:px-6 py-4 transition-colors
6
+
{{if not .Read}}bg-blue-50 dark:bg-blue-800/20 border border-blue-500 dark:border-sky-800{{end}}
7
+
flex gap-2 items-center
9
+
{{ template "notificationIcon" . }}
10
+
<div class="flex-1 w-full flex flex-col gap-1">
11
+
<span>{{ template "notificationHeader" . }}</span>
12
+
<span class="text-sm text-gray-500 dark:text-gray-400">{{ template "notificationSummary" . }}</span>
10
-
{{ template "notificationIcon" . }}
11
-
<div class="flex-1 w-full flex flex-col gap-1">
12
-
<span>{{ template "notificationHeader" . }}</span>
13
-
<span class="text-sm text-gray-500 dark:text-gray-400">{{ template "notificationSummary" . }}</span>
{{ define "notificationIcon" }}
···
67
-
{{define "issueNotification"}}
68
-
{{$url := printf "/%s/%s/issues/%d" (resolve .Repo.Did) .Repo.Name .Issue.IssueId}}
71
-
class="block no-underline hover:no-underline text-inherit -m-3 p-3"
73
-
<div class="flex items-center justify-between">
74
-
<div class="min-w-0 flex-1">
75
-
<!-- First line: icon + actor action -->
76
-
<div class="flex items-center gap-2 text-gray-900 dark:text-white">
77
-
{{if eq .Type "issue_created"}}
78
-
<span class="text-green-600 dark:text-green-500">
79
-
{{ i "circle-dot" "w-4 h-4" }}
81
-
{{else if eq .Type "issue_commented"}}
82
-
<span class="text-gray-500 dark:text-gray-400">
83
-
{{ i "message-circle" "w-4 h-4" }}
85
-
{{else if eq .Type "issue_closed"}}
86
-
<span class="text-gray-500 dark:text-gray-400">
87
-
{{ i "ban" "w-4 h-4" }}
90
-
{{template "user/fragments/picHandle" .ActorDid}}
91
-
{{if eq .Type "issue_created"}}
92
-
<span class="text-gray-500 dark:text-gray-400">opened issue</span>
93
-
{{else if eq .Type "issue_commented"}}
94
-
<span class="text-gray-500 dark:text-gray-400">commented on issue</span>
95
-
{{else if eq .Type "issue_closed"}}
96
-
<span class="text-gray-500 dark:text-gray-400">closed issue</span>
99
-
<div class="w-2 h-2 bg-blue-500 rounded-full flex-shrink-0 ml-1"></div>
103
-
<div class="text-sm text-gray-600 dark:text-gray-400 mt-0.5 ml-6 flex items-center gap-1">
104
-
<span class="text-gray-500 dark:text-gray-400">#{{.Issue.IssueId}}</span>
105
-
<span class="text-gray-900 dark:text-white truncate">{{.Issue.Title}}</span>
107
-
<span class="font-medium text-gray-900 dark:text-white">{{resolve .Repo.Did}}/{{.Repo.Name}}</span>
67
+
{{ define "notificationUrl" }}
69
+
{{ if eq .Type "repo_starred" }}
70
+
{{$url = printf "/%s/%s" (resolve .Repo.Did) .Repo.Name}}
71
+
{{ else if .Issue }}
72
+
{{$url = printf "/%s/%s/issues/%d" (resolve .Repo.Did) .Repo.Name .Issue.IssueId}}
74
+
{{$url = printf "/%s/%s/pulls/%d" (resolve .Repo.Did) .Repo.Name .Pull.PullId}}
75
+
{{ else if eq .Type "followed" }}
76
+
{{$url = printf "/%s" (resolve .ActorDid)}}
111
-
<div class="text-xs text-gray-500 dark:text-gray-400 flex-shrink-0 ml-2">
112
-
{{ template "repo/fragments/time" .Created }}
118
-
{{define "pullNotification"}}
119
-
{{$url := printf "/%s/%s/pulls/%d" (resolve .Repo.Did) .Repo.Name .Pull.PullId}}
122
-
class="block no-underline hover:no-underline text-inherit -m-3 p-3"
124
-
<div class="flex items-center justify-between">
125
-
<div class="min-w-0 flex-1">
126
-
<div class="flex items-center gap-2 text-gray-900 dark:text-white">
127
-
{{if eq .Type "pull_created"}}
128
-
<span class="text-green-600 dark:text-green-500">
129
-
{{ i "git-pull-request-create" "w-4 h-4" }}
131
-
{{else if eq .Type "pull_commented"}}
132
-
<span class="text-gray-500 dark:text-gray-400">
133
-
{{ i "message-circle" "w-4 h-4" }}
135
-
{{else if eq .Type "pull_merged"}}
136
-
<span class="text-purple-600 dark:text-purple-500">
137
-
{{ i "git-merge" "w-4 h-4" }}
139
-
{{else if eq .Type "pull_closed"}}
140
-
<span class="text-red-600 dark:text-red-500">
141
-
{{ i "git-pull-request-closed" "w-4 h-4" }}
144
-
{{template "user/fragments/picHandle" (resolve .ActorDid)}}
145
-
{{if eq .Type "pull_created"}}
146
-
<span class="text-gray-500 dark:text-gray-400">opened pull request</span>
147
-
{{else if eq .Type "pull_commented"}}
148
-
<span class="text-gray-500 dark:text-gray-400">commented on pull request</span>
149
-
{{else if eq .Type "pull_merged"}}
150
-
<span class="text-gray-500 dark:text-gray-400">merged pull request</span>
151
-
{{else if eq .Type "pull_closed"}}
152
-
<span class="text-gray-500 dark:text-gray-400">closed pull request</span>
155
-
<div class="w-2 h-2 bg-blue-500 rounded-full flex-shrink-0 ml-1"></div>
159
-
<div class="text-sm text-gray-600 dark:text-gray-400 mt-0.5 ml-6 flex items-center gap-1">
160
-
<span class="text-gray-500 dark:text-gray-400">#{{.Pull.PullId}}</span>
161
-
<span class="text-gray-900 dark:text-white truncate">{{.Pull.Title}}</span>
163
-
<span class="font-medium text-gray-900 dark:text-white">{{resolve .Repo.Did}}/{{.Repo.Name}}</span>
167
-
<div class="text-xs text-gray-500 dark:text-gray-400 flex-shrink-0 ml-2">
168
-
{{ template "repo/fragments/time" .Created }}
174
-
{{define "repoNotification"}}
175
-
{{$url := printf "/%s/%s" (resolve .Repo.Did) .Repo.Name}}
178
-
class="block no-underline hover:no-underline text-inherit -m-3 p-3"
180
-
<div class="flex items-center justify-between">
181
-
<div class="flex items-center gap-2 min-w-0 flex-1">
182
-
<span class="text-yellow-500 dark:text-yellow-400">
183
-
{{ i "star" "w-4 h-4" }}
186
-
<div class="min-w-0 flex-1">
187
-
<!-- Single line for stars: actor action subject -->
188
-
<div class="flex items-center gap-1 text-gray-900 dark:text-white">
189
-
{{template "user/fragments/picHandle" (resolve .ActorDid)}}
190
-
<span class="text-gray-500 dark:text-gray-400">starred</span>
191
-
<span class="font-medium">{{resolve .Repo.Did}}/{{.Repo.Name}}</span>
193
-
<div class="w-2 h-2 bg-blue-500 rounded-full flex-shrink-0 ml-1"></div>
199
-
<div class="text-xs text-gray-500 dark:text-gray-400 flex-shrink-0 ml-2">
200
-
{{ template "repo/fragments/time" .Created }}
206
-
{{define "followNotification"}}
207
-
{{$url := printf "/%s" (resolve .ActorDid)}}
210
-
class="block no-underline hover:no-underline text-inherit -m-3 p-3"
212
-
<div class="flex items-center justify-between">
213
-
<div class="flex items-center gap-2 min-w-0 flex-1">
214
-
<span class="text-blue-600 dark:text-blue-400">
215
-
{{ i "user-plus" "w-4 h-4" }}
218
-
<div class="min-w-0 flex-1">
219
-
<div class="flex items-center gap-1 text-gray-900 dark:text-white">
220
-
{{template "user/fragments/picHandle" (resolve .ActorDid)}}
221
-
<span class="text-gray-500 dark:text-gray-400">followed you</span>
223
-
<div class="w-2 h-2 bg-blue-500 rounded-full flex-shrink-0 ml-1"></div>
229
-
<div class="text-xs text-gray-500 dark:text-gray-400 flex-shrink-0 ml-2">
230
-
{{ template "repo/fragments/time" .Created }}
236
-
{{define "genericNotification"}}
239
-
class="block no-underline hover:no-underline text-inherit -m-3 p-3"
241
-
<div class="flex items-center justify-between">
242
-
<div class="flex items-center gap-2 min-w-0 flex-1">
243
-
<span class="{{if not .Read}}text-blue-600 dark:text-blue-400{{else}}text-gray-500 dark:text-gray-400{{end}}">
244
-
{{ i "bell" "w-4 h-4" }}
247
-
<div class="min-w-0 flex-1">
248
-
<div class="flex items-center gap-1 text-gray-900 dark:text-white">
249
-
<span>New notification</span>
251
-
<div class="w-2 h-2 bg-blue-500 rounded-full flex-shrink-0 ml-1"></div>
257
-
<div class="text-xs text-gray-500 dark:text-gray-400 flex-shrink-0 ml-2">
258
-
{{ template "repo/fragments/time" .Created }}