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