ikurotime / gitgud

public
main / internal/interface/web/templates/pulls_list_templ.go
15.7 KB · Go Raw
  1// Code generated by templ - DO NOT EDIT.
  2
  3// templ: version: v0.3.865
  4package templates
  5
  6//lint:file-ignore SA4006 This context is only used if a nested component is present.
  7
  8import "github.com/a-h/templ"
  9import templruntime "github.com/a-h/templ/runtime"
 10
 11import "gitgud/internal/domain"
 12
 13func PullsList(user *domain.User, repo *domain.Repository, state string, prs []*domain.PullRequest, openCount, mergedCount, closedCount int) templ.Component {
 14	return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
 15		templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
 16		if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
 17			return templ_7745c5c3_CtxErr
 18		}
 19		templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
 20		if !templ_7745c5c3_IsBuffer {
 21			defer func() {
 22				templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
 23				if templ_7745c5c3_Err == nil {
 24					templ_7745c5c3_Err = templ_7745c5c3_BufErr
 25				}
 26			}()
 27		}
 28		ctx = templ.InitializeContext(ctx)
 29		templ_7745c5c3_Var1 := templ.GetChildren(ctx)
 30		if templ_7745c5c3_Var1 == nil {
 31			templ_7745c5c3_Var1 = templ.NopComponent
 32		}
 33		ctx = templ.ClearChildren(ctx)
 34		templ_7745c5c3_Var2 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
 35			templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
 36			templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
 37			if !templ_7745c5c3_IsBuffer {
 38				defer func() {
 39					templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
 40					if templ_7745c5c3_Err == nil {
 41						templ_7745c5c3_Err = templ_7745c5c3_BufErr
 42					}
 43				}()
 44			}
 45			ctx = templ.InitializeContext(ctx)
 46			templ_7745c5c3_Err = repoHeader(repo, "pulls").Render(ctx, templ_7745c5c3_Buffer)
 47			if templ_7745c5c3_Err != nil {
 48				return templ_7745c5c3_Err
 49			}
 50			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, " <div class=\"mb-4 flex items-center justify-between\"><div class=\"flex gap-5 text-sm\">")
 51			if templ_7745c5c3_Err != nil {
 52				return templ_7745c5c3_Err
 53			}
 54			var templ_7745c5c3_Var3 = []any{stateTabClass(state, "open")}
 55			templ_7745c5c3_Err = templ.RenderCSSItems(ctx, templ_7745c5c3_Buffer, templ_7745c5c3_Var3...)
 56			if templ_7745c5c3_Err != nil {
 57				return templ_7745c5c3_Err
 58			}
 59			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 2, "<a class=\"")
 60			if templ_7745c5c3_Err != nil {
 61				return templ_7745c5c3_Err
 62			}
 63			var templ_7745c5c3_Var4 string
 64			templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinStringErrs(templ.CSSClasses(templ_7745c5c3_Var3).String())
 65			if templ_7745c5c3_Err != nil {
 66				return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/interface/web/templates/pulls_list.templ`, Line: 1, Col: 0}
 67			}
 68			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var4))
 69			if templ_7745c5c3_Err != nil {
 70				return templ_7745c5c3_Err
 71			}
 72			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 3, "\" href=\"")
 73			if templ_7745c5c3_Err != nil {
 74				return templ_7745c5c3_Err
 75			}
 76			var templ_7745c5c3_Var5 templ.SafeURL = templ.SafeURL(repoPath(repo, "/pulls?state=open"))
 77			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(string(templ_7745c5c3_Var5)))
 78			if templ_7745c5c3_Err != nil {
 79				return templ_7745c5c3_Err
 80			}
 81			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 4, "\">")
 82			if templ_7745c5c3_Err != nil {
 83				return templ_7745c5c3_Err
 84			}
 85			var templ_7745c5c3_Var6 string
 86			templ_7745c5c3_Var6, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(openCount))
 87			if templ_7745c5c3_Err != nil {
 88				return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/interface/web/templates/pulls_list.templ`, Line: 10, Col: 123}
 89			}
 90			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var6))
 91			if templ_7745c5c3_Err != nil {
 92				return templ_7745c5c3_Err
 93			}
 94			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 5, " Open</a> ")
 95			if templ_7745c5c3_Err != nil {
 96				return templ_7745c5c3_Err
 97			}
 98			var templ_7745c5c3_Var7 = []any{stateTabClass(state, "merged")}
 99			templ_7745c5c3_Err = templ.RenderCSSItems(ctx, templ_7745c5c3_Buffer, templ_7745c5c3_Var7...)
100			if templ_7745c5c3_Err != nil {
101				return templ_7745c5c3_Err
102			}
103			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 6, "<a class=\"")
104			if templ_7745c5c3_Err != nil {
105				return templ_7745c5c3_Err
106			}
107			var templ_7745c5c3_Var8 string
108			templ_7745c5c3_Var8, templ_7745c5c3_Err = templ.JoinStringErrs(templ.CSSClasses(templ_7745c5c3_Var7).String())
109			if templ_7745c5c3_Err != nil {
110				return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/interface/web/templates/pulls_list.templ`, Line: 1, Col: 0}
111			}
112			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var8))
113			if templ_7745c5c3_Err != nil {
114				return templ_7745c5c3_Err
115			}
116			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 7, "\" href=\"")
117			if templ_7745c5c3_Err != nil {
118				return templ_7745c5c3_Err
119			}
120			var templ_7745c5c3_Var9 templ.SafeURL = templ.SafeURL(repoPath(repo, "/pulls?state=merged"))
121			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(string(templ_7745c5c3_Var9)))
122			if templ_7745c5c3_Err != nil {
123				return templ_7745c5c3_Err
124			}
125			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 8, "\">")
126			if templ_7745c5c3_Err != nil {
127				return templ_7745c5c3_Err
128			}
129			var templ_7745c5c3_Var10 string
130			templ_7745c5c3_Var10, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(mergedCount))
131			if templ_7745c5c3_Err != nil {
132				return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/interface/web/templates/pulls_list.templ`, Line: 11, Col: 129}
133			}
134			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var10))
135			if templ_7745c5c3_Err != nil {
136				return templ_7745c5c3_Err
137			}
138			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 9, " Merged</a> ")
139			if templ_7745c5c3_Err != nil {
140				return templ_7745c5c3_Err
141			}
142			var templ_7745c5c3_Var11 = []any{stateTabClass(state, "closed")}
143			templ_7745c5c3_Err = templ.RenderCSSItems(ctx, templ_7745c5c3_Buffer, templ_7745c5c3_Var11...)
144			if templ_7745c5c3_Err != nil {
145				return templ_7745c5c3_Err
146			}
147			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 10, "<a class=\"")
148			if templ_7745c5c3_Err != nil {
149				return templ_7745c5c3_Err
150			}
151			var templ_7745c5c3_Var12 string
152			templ_7745c5c3_Var12, templ_7745c5c3_Err = templ.JoinStringErrs(templ.CSSClasses(templ_7745c5c3_Var11).String())
153			if templ_7745c5c3_Err != nil {
154				return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/interface/web/templates/pulls_list.templ`, Line: 1, Col: 0}
155			}
156			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var12))
157			if templ_7745c5c3_Err != nil {
158				return templ_7745c5c3_Err
159			}
160			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 11, "\" href=\"")
161			if templ_7745c5c3_Err != nil {
162				return templ_7745c5c3_Err
163			}
164			var templ_7745c5c3_Var13 templ.SafeURL = templ.SafeURL(repoPath(repo, "/pulls?state=closed"))
165			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(string(templ_7745c5c3_Var13)))
166			if templ_7745c5c3_Err != nil {
167				return templ_7745c5c3_Err
168			}
169			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 12, "\">")
170			if templ_7745c5c3_Err != nil {
171				return templ_7745c5c3_Err
172			}
173			var templ_7745c5c3_Var14 string
174			templ_7745c5c3_Var14, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(closedCount))
175			if templ_7745c5c3_Err != nil {
176				return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/interface/web/templates/pulls_list.templ`, Line: 12, Col: 129}
177			}
178			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var14))
179			if templ_7745c5c3_Err != nil {
180				return templ_7745c5c3_Err
181			}
182			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 13, " Closed</a></div><a class=\"btn btn-primary\" href=\"")
183			if templ_7745c5c3_Err != nil {
184				return templ_7745c5c3_Err
185			}
186			var templ_7745c5c3_Var15 templ.SafeURL = templ.SafeURL(repoPath(repo, "/compare"))
187			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(string(templ_7745c5c3_Var15)))
188			if templ_7745c5c3_Err != nil {
189				return templ_7745c5c3_Err
190			}
191			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 14, "\">+ New pull request</a></div>")
192			if templ_7745c5c3_Err != nil {
193				return templ_7745c5c3_Err
194			}
195			if len(prs) == 0 {
196				templ_7745c5c3_Err = emptyState("No pull requests", "There are no "+state+" pull requests in this repository.", "", "").Render(ctx, templ_7745c5c3_Buffer)
197				if templ_7745c5c3_Err != nil {
198					return templ_7745c5c3_Err
199				}
200			} else {
201				templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 15, "<div class=\"card overflow-hidden\">")
202				if templ_7745c5c3_Err != nil {
203					return templ_7745c5c3_Err
204				}
205				for _, p := range prs {
206					templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 16, "<div class=\"row border-b border-line px-4 py-3 last:border-0\"><a class=\"flex items-start gap-2.5\" href=\"")
207					if templ_7745c5c3_Err != nil {
208						return templ_7745c5c3_Err
209					}
210					var templ_7745c5c3_Var16 templ.SafeURL = templ.SafeURL(repoPath(repo, "/pulls/"+itoa(p.Number)))
211					_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(string(templ_7745c5c3_Var16)))
212					if templ_7745c5c3_Err != nil {
213						return templ_7745c5c3_Err
214					}
215					templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 17, "\">")
216					if templ_7745c5c3_Err != nil {
217						return templ_7745c5c3_Err
218					}
219					templ_7745c5c3_Err = prDot(string(p.State)).Render(ctx, templ_7745c5c3_Buffer)
220					if templ_7745c5c3_Err != nil {
221						return templ_7745c5c3_Err
222					}
223					templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 18, "<span class=\"min-w-0\"><span class=\"block text-ink hover:text-accent\">")
224					if templ_7745c5c3_Err != nil {
225						return templ_7745c5c3_Err
226					}
227					var templ_7745c5c3_Var17 string
228					templ_7745c5c3_Var17, templ_7745c5c3_Err = templ.JoinStringErrs(p.Title)
229					if templ_7745c5c3_Err != nil {
230						return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/interface/web/templates/pulls_list.templ`, Line: 25, Col: 64}
231					}
232					_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var17))
233					if templ_7745c5c3_Err != nil {
234						return templ_7745c5c3_Err
235					}
236					templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 19, "</span> <span class=\"meta\">#")
237					if templ_7745c5c3_Err != nil {
238						return templ_7745c5c3_Err
239					}
240					var templ_7745c5c3_Var18 string
241					templ_7745c5c3_Var18, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(p.Number))
242					if templ_7745c5c3_Err != nil {
243						return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/interface/web/templates/pulls_list.templ`, Line: 26, Col: 44}
244					}
245					_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var18))
246					if templ_7745c5c3_Err != nil {
247						return templ_7745c5c3_Err
248					}
249					templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 20, " · <span class=\"font-mono\">")
250					if templ_7745c5c3_Err != nil {
251						return templ_7745c5c3_Err
252					}
253					var templ_7745c5c3_Var19 string
254					templ_7745c5c3_Var19, templ_7745c5c3_Err = templ.JoinStringErrs(p.HeadBranch)
255					if templ_7745c5c3_Err != nil {
256						return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/interface/web/templates/pulls_list.templ`, Line: 26, Col: 88}
257					}
258					_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var19))
259					if templ_7745c5c3_Err != nil {
260						return templ_7745c5c3_Err
261					}
262					templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 21, "</span> → <span class=\"font-mono\">")
263					if templ_7745c5c3_Err != nil {
264						return templ_7745c5c3_Err
265					}
266					var templ_7745c5c3_Var20 string
267					templ_7745c5c3_Var20, templ_7745c5c3_Err = templ.JoinStringErrs(p.BaseBranch)
268					if templ_7745c5c3_Err != nil {
269						return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/interface/web/templates/pulls_list.templ`, Line: 26, Col: 140}
270					}
271					_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var20))
272					if templ_7745c5c3_Err != nil {
273						return templ_7745c5c3_Err
274					}
275					templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 22, "</span> · by ")
276					if templ_7745c5c3_Err != nil {
277						return templ_7745c5c3_Err
278					}
279					var templ_7745c5c3_Var21 string
280					templ_7745c5c3_Var21, templ_7745c5c3_Err = templ.JoinStringErrs(p.AuthorName)
281					if templ_7745c5c3_Err != nil {
282						return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/interface/web/templates/pulls_list.templ`, Line: 26, Col: 170}
283					}
284					_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var21))
285					if templ_7745c5c3_Err != nil {
286						return templ_7745c5c3_Err
287					}
288					templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 23, "</span></span></a></div>")
289					if templ_7745c5c3_Err != nil {
290						return templ_7745c5c3_Err
291					}
292				}
293				templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 24, "</div>")
294				if templ_7745c5c3_Err != nil {
295					return templ_7745c5c3_Err
296				}
297			}
298			return nil
299		})
300		templ_7745c5c3_Err = Layout("Pull requests · "+repo.Name, user).Render(templ.WithChildren(ctx, templ_7745c5c3_Var2), templ_7745c5c3_Buffer)
301		if templ_7745c5c3_Err != nil {
302			return templ_7745c5c3_Err
303		}
304		return nil
305	})
306}
307
308func prDot(state string) templ.Component {
309	return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
310		templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
311		if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
312			return templ_7745c5c3_CtxErr
313		}
314		templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
315		if !templ_7745c5c3_IsBuffer {
316			defer func() {
317				templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
318				if templ_7745c5c3_Err == nil {
319					templ_7745c5c3_Err = templ_7745c5c3_BufErr
320				}
321			}()
322		}
323		ctx = templ.InitializeContext(ctx)
324		templ_7745c5c3_Var22 := templ.GetChildren(ctx)
325		if templ_7745c5c3_Var22 == nil {
326			templ_7745c5c3_Var22 = templ.NopComponent
327		}
328		ctx = templ.ClearChildren(ctx)
329		if state == "open" {
330			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 25, "<span class=\"mt-1 size-3.5 shrink-0 rounded-full border-2 border-accent\"></span>")
331			if templ_7745c5c3_Err != nil {
332				return templ_7745c5c3_Err
333			}
334		} else if state == "merged" {
335			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 26, "<span class=\"mt-1 size-3.5 shrink-0 rounded-full border-2 border-merged\"></span>")
336			if templ_7745c5c3_Err != nil {
337				return templ_7745c5c3_Err
338			}
339		} else {
340			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 27, "<span class=\"mt-1 size-3.5 shrink-0 rounded-full border-2 border-faint\"></span>")
341			if templ_7745c5c3_Err != nil {
342				return templ_7745c5c3_Err
343			}
344		}
345		return nil
346	})
347}
348
349var _ = templruntime.GeneratedTemplate