ikurotime / gitgud

public
main / internal/interface/web/templates/explore_templ.go
14.3 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 Explore(user *domain.User, repos []*domain.Repository) 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 = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "<div class=\"mx-auto max-w-3xl\"><div class=\"mb-6 flex items-center justify-between gap-4\"><div><h1 class=\"text-base font-semibold text-ink\">Public repositories</h1><p class=\"mt-1 text-[13px] text-muted\">")
 47			if templ_7745c5c3_Err != nil {
 48				return templ_7745c5c3_Err
 49			}
 50			var templ_7745c5c3_Var3 string
 51			templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(repos)))
 52			if templ_7745c5c3_Err != nil {
 53				return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/interface/web/templates/explore.templ`, Line: 12, Col: 24}
 54			}
 55			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(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, " public ")
 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(plural(len(repos), "repository", "repositories"))
 65			if templ_7745c5c3_Err != nil {
 66				return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/interface/web/templates/explore.templ`, Line: 12, Col: 84}
 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, " on this instance.</p></div>")
 73			if templ_7745c5c3_Err != nil {
 74				return templ_7745c5c3_Err
 75			}
 76			if user != nil {
 77				templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 4, "<a class=\"btn btn-primary shrink-0\" href=\"/new\">+ New repository</a>")
 78				if templ_7745c5c3_Err != nil {
 79					return templ_7745c5c3_Err
 80				}
 81			}
 82			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 5, "</div>")
 83			if templ_7745c5c3_Err != nil {
 84				return templ_7745c5c3_Err
 85			}
 86			if len(repos) == 0 {
 87				if user != nil {
 88					templ_7745c5c3_Err = emptyState("No public repositories yet", "Create a public repository and it will show up here for everyone.", "/new", "Create repository").Render(ctx, templ_7745c5c3_Buffer)
 89					if templ_7745c5c3_Err != nil {
 90						return templ_7745c5c3_Err
 91					}
 92				} else {
 93					templ_7745c5c3_Err = emptyState("No public repositories yet", "When someone creates a public repository, it will appear here.", "", "").Render(ctx, templ_7745c5c3_Buffer)
 94					if templ_7745c5c3_Err != nil {
 95						return templ_7745c5c3_Err
 96					}
 97				}
 98			} else {
 99				templ_7745c5c3_Err = repoList(repos).Render(ctx, templ_7745c5c3_Buffer)
100				if templ_7745c5c3_Err != nil {
101					return templ_7745c5c3_Err
102				}
103			}
104			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 6, "</div>")
105			if templ_7745c5c3_Err != nil {
106				return templ_7745c5c3_Err
107			}
108			return nil
109		})
110		templ_7745c5c3_Err = Layout("Explore · gitgud", user).Render(templ.WithChildren(ctx, templ_7745c5c3_Var2), templ_7745c5c3_Buffer)
111		if templ_7745c5c3_Err != nil {
112			return templ_7745c5c3_Err
113		}
114		return nil
115	})
116}
117
118func repoList(repos []*domain.Repository) templ.Component {
119	return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
120		templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
121		if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
122			return templ_7745c5c3_CtxErr
123		}
124		templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
125		if !templ_7745c5c3_IsBuffer {
126			defer func() {
127				templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
128				if templ_7745c5c3_Err == nil {
129					templ_7745c5c3_Err = templ_7745c5c3_BufErr
130				}
131			}()
132		}
133		ctx = templ.InitializeContext(ctx)
134		templ_7745c5c3_Var5 := templ.GetChildren(ctx)
135		if templ_7745c5c3_Var5 == nil {
136			templ_7745c5c3_Var5 = templ.NopComponent
137		}
138		ctx = templ.ClearChildren(ctx)
139		templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 7, "<div class=\"flex flex-col\">")
140		if templ_7745c5c3_Err != nil {
141			return templ_7745c5c3_Err
142		}
143		for _, repo := range repos {
144			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 8, "<a class=\"group block border-t border-line py-3.5 last:border-b\" href=\"")
145			if templ_7745c5c3_Err != nil {
146				return templ_7745c5c3_Err
147			}
148			var templ_7745c5c3_Var6 templ.SafeURL = templ.SafeURL("/" + repo.OwnerName + "/" + repo.Name)
149			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(string(templ_7745c5c3_Var6)))
150			if templ_7745c5c3_Err != nil {
151				return templ_7745c5c3_Err
152			}
153			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 9, "\"><div class=\"mb-1.5 flex items-center gap-2\"><span class=\"font-mono text-sm font-semibold text-accent group-hover:underline\">")
154			if templ_7745c5c3_Err != nil {
155				return templ_7745c5c3_Err
156			}
157			var templ_7745c5c3_Var7 string
158			templ_7745c5c3_Var7, templ_7745c5c3_Err = templ.JoinStringErrs(repo.OwnerName)
159			if templ_7745c5c3_Err != nil {
160				return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/interface/web/templates/explore.templ`, Line: 37, Col: 101}
161			}
162			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var7))
163			if templ_7745c5c3_Err != nil {
164				return templ_7745c5c3_Err
165			}
166			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 10, "/")
167			if templ_7745c5c3_Err != nil {
168				return templ_7745c5c3_Err
169			}
170			var templ_7745c5c3_Var8 string
171			templ_7745c5c3_Var8, templ_7745c5c3_Err = templ.JoinStringErrs(repo.Name)
172			if templ_7745c5c3_Err != nil {
173				return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/interface/web/templates/explore.templ`, Line: 37, Col: 115}
174			}
175			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var8))
176			if templ_7745c5c3_Err != nil {
177				return templ_7745c5c3_Err
178			}
179			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 11, "</span> ")
180			if templ_7745c5c3_Err != nil {
181				return templ_7745c5c3_Err
182			}
183			if repo.IsPrivate {
184				templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 12, "<span class=\"rounded border border-[#4a3d24] px-1.5 py-0.5 font-mono text-[10px] text-warn\">private</span>")
185				if templ_7745c5c3_Err != nil {
186					return templ_7745c5c3_Err
187				}
188			} else {
189				templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 13, "<span class=\"rounded border border-line2 px-1.5 py-0.5 font-mono text-[10px] text-faint\">public</span>")
190				if templ_7745c5c3_Err != nil {
191					return templ_7745c5c3_Err
192				}
193			}
194			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 14, "</div>")
195			if templ_7745c5c3_Err != nil {
196				return templ_7745c5c3_Err
197			}
198			if repo.Description != "" {
199				templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 15, "<p class=\"mb-2.5 line-clamp-2 text-[13px] text-muted\">")
200				if templ_7745c5c3_Err != nil {
201					return templ_7745c5c3_Err
202				}
203				var templ_7745c5c3_Var9 string
204				templ_7745c5c3_Var9, templ_7745c5c3_Err = templ.JoinStringErrs(repo.Description)
205				if templ_7745c5c3_Err != nil {
206					return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/interface/web/templates/explore.templ`, Line: 45, Col: 77}
207				}
208				_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var9))
209				if templ_7745c5c3_Err != nil {
210					return templ_7745c5c3_Err
211				}
212				templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 16, "</p>")
213				if templ_7745c5c3_Err != nil {
214					return templ_7745c5c3_Err
215				}
216			}
217			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 17, "<div class=\"flex items-center gap-1.5 font-mono text-xs text-faint\"><span class=\"size-2 rounded-full bg-accent\"></span> ")
218			if templ_7745c5c3_Err != nil {
219				return templ_7745c5c3_Err
220			}
221			var templ_7745c5c3_Var10 string
222			templ_7745c5c3_Var10, templ_7745c5c3_Err = templ.JoinStringErrs(repo.DefaultBranch)
223			if templ_7745c5c3_Err != nil {
224				return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/interface/web/templates/explore.templ`, Line: 49, Col: 25}
225			}
226			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var10))
227			if templ_7745c5c3_Err != nil {
228				return templ_7745c5c3_Err
229			}
230			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 18, "</div></a>")
231			if templ_7745c5c3_Err != nil {
232				return templ_7745c5c3_Err
233			}
234		}
235		templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 19, "</div>")
236		if templ_7745c5c3_Err != nil {
237			return templ_7745c5c3_Err
238		}
239		return nil
240	})
241}
242
243func emptyState(title, body, href, cta string) templ.Component {
244	return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
245		templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
246		if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
247			return templ_7745c5c3_CtxErr
248		}
249		templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
250		if !templ_7745c5c3_IsBuffer {
251			defer func() {
252				templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
253				if templ_7745c5c3_Err == nil {
254					templ_7745c5c3_Err = templ_7745c5c3_BufErr
255				}
256			}()
257		}
258		ctx = templ.InitializeContext(ctx)
259		templ_7745c5c3_Var11 := templ.GetChildren(ctx)
260		if templ_7745c5c3_Var11 == nil {
261			templ_7745c5c3_Var11 = templ.NopComponent
262		}
263		ctx = templ.ClearChildren(ctx)
264		templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 20, "<div class=\"card flex flex-col items-center px-6 py-14 text-center\"><div class=\"mb-4 flex size-10 items-center justify-center rounded-full border border-line2 text-faint\">·</div><h3 class=\"font-semibold text-ink\">")
265		if templ_7745c5c3_Err != nil {
266			return templ_7745c5c3_Err
267		}
268		var templ_7745c5c3_Var12 string
269		templ_7745c5c3_Var12, templ_7745c5c3_Err = templ.JoinStringErrs(title)
270		if templ_7745c5c3_Err != nil {
271			return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/interface/web/templates/explore.templ`, Line: 59, Col: 44}
272		}
273		_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var12))
274		if templ_7745c5c3_Err != nil {
275			return templ_7745c5c3_Err
276		}
277		templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 21, "</h3><p class=\"mt-1 max-w-sm text-sm text-muted\">")
278		if templ_7745c5c3_Err != nil {
279			return templ_7745c5c3_Err
280		}
281		var templ_7745c5c3_Var13 string
282		templ_7745c5c3_Var13, templ_7745c5c3_Err = templ.JoinStringErrs(body)
283		if templ_7745c5c3_Err != nil {
284			return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/interface/web/templates/explore.templ`, Line: 60, Col: 52}
285		}
286		_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var13))
287		if templ_7745c5c3_Err != nil {
288			return templ_7745c5c3_Err
289		}
290		templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 22, "</p>")
291		if templ_7745c5c3_Err != nil {
292			return templ_7745c5c3_Err
293		}
294		if href != "" {
295			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 23, "<a class=\"btn btn-primary mt-5\" href=\"")
296			if templ_7745c5c3_Err != nil {
297				return templ_7745c5c3_Err
298			}
299			var templ_7745c5c3_Var14 templ.SafeURL = templ.SafeURL(href)
300			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(string(templ_7745c5c3_Var14)))
301			if templ_7745c5c3_Err != nil {
302				return templ_7745c5c3_Err
303			}
304			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 24, "\">")
305			if templ_7745c5c3_Err != nil {
306				return templ_7745c5c3_Err
307			}
308			var templ_7745c5c3_Var15 string
309			templ_7745c5c3_Var15, templ_7745c5c3_Err = templ.JoinStringErrs(cta)
310			if templ_7745c5c3_Err != nil {
311				return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/interface/web/templates/explore.templ`, Line: 62, Col: 69}
312			}
313			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var15))
314			if templ_7745c5c3_Err != nil {
315				return templ_7745c5c3_Err
316			}
317			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 25, "</a>")
318			if templ_7745c5c3_Err != nil {
319				return templ_7745c5c3_Err
320			}
321		}
322		templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 26, "</div>")
323		if templ_7745c5c3_Err != nil {
324			return templ_7745c5c3_Err
325		}
326		return nil
327	})
328}
329
330var _ = templruntime.GeneratedTemplate