1// Code generated by templ - DO NOT EDIT.
2
3// templ: version: v0.3.1020
4// SPDX-License-Identifier: AGPL-3.0-or-later
5
6package web
7
8//lint:file-ignore SA4006 This context is only used if a nested component is present.
9
10import "github.com/a-h/templ"
11import templruntime "github.com/a-h/templ/runtime"
12
13// The fragments of the live updates (events.go). Each is a top-level element
14// with an id: the page swaps the element that has the same id.
15
16// FactValue is the value of a fact; its id, when it has one, is the target of
17// the live updates ("last push").
18func FactValue(f Fact) templ.Component {
19 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
20 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
21 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
22 return templ_7745c5c3_CtxErr
23 }
24 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
25 if !templ_7745c5c3_IsBuffer {
26 defer func() {
27 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
28 if templ_7745c5c3_Err == nil {
29 templ_7745c5c3_Err = templ_7745c5c3_BufErr
30 }
31 }()
32 }
33 ctx = templ.InitializeContext(ctx)
34 templ_7745c5c3_Var1 := templ.GetChildren(ctx)
35 if templ_7745c5c3_Var1 == nil {
36 templ_7745c5c3_Var1 = templ.NopComponent
37 }
38 ctx = templ.ClearChildren(ctx)
39 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "<dd")
40 if templ_7745c5c3_Err != nil {
41 return templ_7745c5c3_Err
42 }
43 if f.ID != "" {
44 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 2, " id=\"")
45 if templ_7745c5c3_Err != nil {
46 return templ_7745c5c3_Err
47 }
48 var templ_7745c5c3_Var2 string
49 templ_7745c5c3_Var2, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.ID)
50 if templ_7745c5c3_Err != nil {
51 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/fragments.templ`, Line: 13, Col: 12}
52 }
53 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var2)
54 if templ_7745c5c3_Err != nil {
55 return templ_7745c5c3_Err
56 }
57 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 3, "\"")
58 if templ_7745c5c3_Err != nil {
59 return templ_7745c5c3_Err
60 }
61 }
62 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 4, ">")
63 if templ_7745c5c3_Err != nil {
64 return templ_7745c5c3_Err
65 }
66 if f.Time != "" {
67 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 5, "<time datetime=\"")
68 if templ_7745c5c3_Err != nil {
69 return templ_7745c5c3_Err
70 }
71 var templ_7745c5c3_Var3 string
72 templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.ResolveAttributeValue(f.Time)
73 if templ_7745c5c3_Err != nil {
74 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/fragments.templ`, Line: 17, Col: 26}
75 }
76 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var3)
77 if templ_7745c5c3_Err != nil {
78 return templ_7745c5c3_Err
79 }
80 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 6, "\">")
81 if templ_7745c5c3_Err != nil {
82 return templ_7745c5c3_Err
83 }
84 var templ_7745c5c3_Var4 string
85 templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinStringErrs(f.Val)
86 if templ_7745c5c3_Err != nil {
87 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/fragments.templ`, Line: 17, Col: 36}
88 }
89 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var4))
90 if templ_7745c5c3_Err != nil {
91 return templ_7745c5c3_Err
92 }
93 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 7, "</time>")
94 if templ_7745c5c3_Err != nil {
95 return templ_7745c5c3_Err
96 }
97 } else {
98 var templ_7745c5c3_Var5 string
99 templ_7745c5c3_Var5, templ_7745c5c3_Err = templ.JoinStringErrs(f.Val)
100 if templ_7745c5c3_Err != nil {
101 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/fragments.templ`, Line: 19, Col: 10}
102 }
103 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var5))
104 if templ_7745c5c3_Err != nil {
105 return templ_7745c5c3_Err
106 }
107 }
108 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 8, "</dd>")
109 if templ_7745c5c3_Err != nil {
110 return templ_7745c5c3_Err
111 }
112 return nil
113 })
114}
115
116// RepoGone replaces the card of a repository that is deleted or not visible
117// any more; the page removes the element.
118func RepoGone(id string) 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_Var6 := templ.GetChildren(ctx)
135 if templ_7745c5c3_Var6 == nil {
136 templ_7745c5c3_Var6 = templ.NopComponent
137 }
138 ctx = templ.ClearChildren(ctx)
139 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 9, "<li id=\"")
140 if templ_7745c5c3_Err != nil {
141 return templ_7745c5c3_Err
142 }
143 var templ_7745c5c3_Var7 string
144 templ_7745c5c3_Var7, templ_7745c5c3_Err = templ.ResolveAttributeValue(id)
145 if templ_7745c5c3_Err != nil {
146 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/fragments.templ`, Line: 27, Col: 12}
147 }
148 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var7)
149 if templ_7745c5c3_Err != nil {
150 return templ_7745c5c3_Err
151 }
152 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 10, "\" data-gone hidden></li>")
153 if templ_7745c5c3_Err != nil {
154 return templ_7745c5c3_Err
155 }
156 return nil
157 })
158}
159
160// RefsBody is the rows of the refs table.
161func RefsBody(p RefsPage) templ.Component {
162 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
163 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
164 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
165 return templ_7745c5c3_CtxErr
166 }
167 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
168 if !templ_7745c5c3_IsBuffer {
169 defer func() {
170 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
171 if templ_7745c5c3_Err == nil {
172 templ_7745c5c3_Err = templ_7745c5c3_BufErr
173 }
174 }()
175 }
176 ctx = templ.InitializeContext(ctx)
177 templ_7745c5c3_Var8 := templ.GetChildren(ctx)
178 if templ_7745c5c3_Var8 == nil {
179 templ_7745c5c3_Var8 = templ.NopComponent
180 }
181 ctx = templ.ClearChildren(ctx)
182 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 11, "<tbody id=\"ref-rows\" data-rows>")
183 if templ_7745c5c3_Err != nil {
184 return templ_7745c5c3_Err
185 }
186 for _, b := range p.Branches {
187 templ_7745c5c3_Err = refRow("branch", b).Render(ctx, templ_7745c5c3_Buffer)
188 if templ_7745c5c3_Err != nil {
189 return templ_7745c5c3_Err
190 }
191 }
192 for _, t := range p.Tags {
193 templ_7745c5c3_Err = refRow("tag", t).Render(ctx, templ_7745c5c3_Buffer)
194 if templ_7745c5c3_Err != nil {
195 return templ_7745c5c3_Err
196 }
197 }
198 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 12, "</tbody>")
199 if templ_7745c5c3_Err != nil {
200 return templ_7745c5c3_Err
201 }
202 return nil
203 })
204}
205
206// RefsKV is the facts of the rail of the refs page.
207func RefsKV(p RefsPage) templ.Component {
208 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
209 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
210 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
211 return templ_7745c5c3_CtxErr
212 }
213 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
214 if !templ_7745c5c3_IsBuffer {
215 defer func() {
216 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
217 if templ_7745c5c3_Err == nil {
218 templ_7745c5c3_Err = templ_7745c5c3_BufErr
219 }
220 }()
221 }
222 ctx = templ.InitializeContext(ctx)
223 templ_7745c5c3_Var9 := templ.GetChildren(ctx)
224 if templ_7745c5c3_Var9 == nil {
225 templ_7745c5c3_Var9 = templ.NopComponent
226 }
227 ctx = templ.ClearChildren(ctx)
228 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 13, "<dl class=\"kv\" id=\"refs-kv\"><dt>default</dt><dd>")
229 if templ_7745c5c3_Err != nil {
230 return templ_7745c5c3_Err
231 }
232 var templ_7745c5c3_Var10 string
233 templ_7745c5c3_Var10, templ_7745c5c3_Err = templ.JoinStringErrs(p.Default)
234 if templ_7745c5c3_Err != nil {
235 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/fragments.templ`, Line: 46, Col: 17}
236 }
237 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var10))
238 if templ_7745c5c3_Err != nil {
239 return templ_7745c5c3_Err
240 }
241 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 14, "</dd><dt>branches</dt><dd>")
242 if templ_7745c5c3_Err != nil {
243 return templ_7745c5c3_Err
244 }
245 var templ_7745c5c3_Var11 string
246 templ_7745c5c3_Var11, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Branches)))
247 if templ_7745c5c3_Err != nil {
248 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/fragments.templ`, Line: 48, Col: 29}
249 }
250 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var11))
251 if templ_7745c5c3_Err != nil {
252 return templ_7745c5c3_Err
253 }
254 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 15, "</dd><dt>tags</dt><dd>")
255 if templ_7745c5c3_Err != nil {
256 return templ_7745c5c3_Err
257 }
258 var templ_7745c5c3_Var12 string
259 templ_7745c5c3_Var12, templ_7745c5c3_Err = templ.JoinStringErrs(itoa(len(p.Tags)))
260 if templ_7745c5c3_Err != nil {
261 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/fragments.templ`, Line: 50, Col: 25}
262 }
263 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var12))
264 if templ_7745c5c3_Err != nil {
265 return templ_7745c5c3_Err
266 }
267 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 16, "</dd>")
268 if templ_7745c5c3_Err != nil {
269 return templ_7745c5c3_Err
270 }
271 if p.Latest != "" {
272 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 17, "<dt>latest tag</dt><dd>")
273 if templ_7745c5c3_Err != nil {
274 return templ_7745c5c3_Err
275 }
276 var templ_7745c5c3_Var13 string
277 templ_7745c5c3_Var13, templ_7745c5c3_Err = templ.JoinStringErrs(p.Latest)
278 if templ_7745c5c3_Err != nil {
279 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/fragments.templ`, Line: 53, Col: 17}
280 }
281 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var13))
282 if templ_7745c5c3_Err != nil {
283 return templ_7745c5c3_Err
284 }
285 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 18, "</dd>")
286 if templ_7745c5c3_Err != nil {
287 return templ_7745c5c3_Err
288 }
289 }
290 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 19, "</dl>")
291 if templ_7745c5c3_Err != nil {
292 return templ_7745c5c3_Err
293 }
294 return nil
295 })
296}
297
298// LiveSlot is the place of a live banner, empty: a status region that stays
299// in the page. The live updates (ermiteLive in ermite.js) replace its children,
300// never the element, so that a screen reader announces the new banner (a
301// region that is inserted with its content is not announced).
302func LiveSlot(id string) templ.Component {
303 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
304 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
305 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
306 return templ_7745c5c3_CtxErr
307 }
308 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
309 if !templ_7745c5c3_IsBuffer {
310 defer func() {
311 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
312 if templ_7745c5c3_Err == nil {
313 templ_7745c5c3_Err = templ_7745c5c3_BufErr
314 }
315 }()
316 }
317 ctx = templ.InitializeContext(ctx)
318 templ_7745c5c3_Var14 := templ.GetChildren(ctx)
319 if templ_7745c5c3_Var14 == nil {
320 templ_7745c5c3_Var14 = templ.NopComponent
321 }
322 ctx = templ.ClearChildren(ctx)
323 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 20, "<div id=\"")
324 if templ_7745c5c3_Err != nil {
325 return templ_7745c5c3_Err
326 }
327 var templ_7745c5c3_Var15 string
328 templ_7745c5c3_Var15, templ_7745c5c3_Err = templ.ResolveAttributeValue(id)
329 if templ_7745c5c3_Err != nil {
330 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/fragments.templ`, Line: 63, Col: 13}
331 }
332 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var15)
333 if templ_7745c5c3_Err != nil {
334 return templ_7745c5c3_Err
335 }
336 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 21, "\" class=\"live-slot\" role=\"status\" data-slot></div>")
337 if templ_7745c5c3_Err != nil {
338 return templ_7745c5c3_Err
339 }
340 return nil
341 })
342}
343
344// liveBanner is the slot with its banner: a link that reloads or opens the
345// page. Only the children of the element reach the page that has the slot.
346func liveBanner(id, text, href string) templ.Component {
347 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
348 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
349 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
350 return templ_7745c5c3_CtxErr
351 }
352 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
353 if !templ_7745c5c3_IsBuffer {
354 defer func() {
355 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
356 if templ_7745c5c3_Err == nil {
357 templ_7745c5c3_Err = templ_7745c5c3_BufErr
358 }
359 }()
360 }
361 ctx = templ.InitializeContext(ctx)
362 templ_7745c5c3_Var16 := templ.GetChildren(ctx)
363 if templ_7745c5c3_Var16 == nil {
364 templ_7745c5c3_Var16 = templ.NopComponent
365 }
366 ctx = templ.ClearChildren(ctx)
367 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 22, "<div id=\"")
368 if templ_7745c5c3_Err != nil {
369 return templ_7745c5c3_Err
370 }
371 var templ_7745c5c3_Var17 string
372 templ_7745c5c3_Var17, templ_7745c5c3_Err = templ.ResolveAttributeValue(id)
373 if templ_7745c5c3_Err != nil {
374 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/fragments.templ`, Line: 69, Col: 13}
375 }
376 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var17)
377 if templ_7745c5c3_Err != nil {
378 return templ_7745c5c3_Err
379 }
380 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 23, "\" class=\"live-slot\" role=\"status\" data-slot><a href=\"")
381 if templ_7745c5c3_Err != nil {
382 return templ_7745c5c3_Err
383 }
384 var templ_7745c5c3_Var18 templ.SafeURL
385 templ_7745c5c3_Var18, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(href))
386 if templ_7745c5c3_Err != nil {
387 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/fragments.templ`, Line: 69, Col: 87}
388 }
389 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var18))
390 if templ_7745c5c3_Err != nil {
391 return templ_7745c5c3_Err
392 }
393 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 24, "\">")
394 if templ_7745c5c3_Err != nil {
395 return templ_7745c5c3_Err
396 }
397 var templ_7745c5c3_Var19 string
398 templ_7745c5c3_Var19, templ_7745c5c3_Err = templ.JoinStringErrs(text)
399 if templ_7745c5c3_Err != nil {
400 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/fragments.templ`, Line: 69, Col: 96}
401 }
402 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var19))
403 if templ_7745c5c3_Err != nil {
404 return templ_7745c5c3_Err
405 }
406 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 25, "</a></div>")
407 if templ_7745c5c3_Err != nil {
408 return templ_7745c5c3_Err
409 }
410 return nil
411 })
412}
413
414// CommitsBanner announces new commits on the branch the page lists. It links
415// to the first page of the branch.
416func CommitsBanner(text, href string) templ.Component {
417 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
418 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
419 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
420 return templ_7745c5c3_CtxErr
421 }
422 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
423 if !templ_7745c5c3_IsBuffer {
424 defer func() {
425 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
426 if templ_7745c5c3_Err == nil {
427 templ_7745c5c3_Err = templ_7745c5c3_BufErr
428 }
429 }()
430 }
431 ctx = templ.InitializeContext(ctx)
432 templ_7745c5c3_Var20 := templ.GetChildren(ctx)
433 if templ_7745c5c3_Var20 == nil {
434 templ_7745c5c3_Var20 = templ.NopComponent
435 }
436 ctx = templ.ClearChildren(ctx)
437 templ_7745c5c3_Err = liveBanner("commits-head", text, href).Render(ctx, templ_7745c5c3_Buffer)
438 if templ_7745c5c3_Err != nil {
439 return templ_7745c5c3_Err
440 }
441 return nil
442 })
443}
444
445// MRNotice tells a merge request page that it is out of date, or the list that
446// its content changed.
447func MRNotice(text, href string) templ.Component {
448 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
449 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
450 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
451 return templ_7745c5c3_CtxErr
452 }
453 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
454 if !templ_7745c5c3_IsBuffer {
455 defer func() {
456 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
457 if templ_7745c5c3_Err == nil {
458 templ_7745c5c3_Err = templ_7745c5c3_BufErr
459 }
460 }()
461 }
462 ctx = templ.InitializeContext(ctx)
463 templ_7745c5c3_Var21 := templ.GetChildren(ctx)
464 if templ_7745c5c3_Var21 == nil {
465 templ_7745c5c3_Var21 = templ.NopComponent
466 }
467 ctx = templ.ClearChildren(ctx)
468 templ_7745c5c3_Err = liveBanner("mr-notice", text, href).Render(ctx, templ_7745c5c3_Buffer)
469 if templ_7745c5c3_Err != nil {
470 return templ_7745c5c3_Err
471 }
472 return nil
473 })
474}
475
476// Live is the connection to the event stream, in the hint badge. It shows
477// only once a connection stays lost for a few seconds (ermiteLive.lost): a
478// page that never connected, that is live, or whose stream comes back right
479// away (a proxy closing an idle stream) says nothing. The events of the stream are fragments that ermiteLive
480// (ermite.js) swaps in the page. A page without a stream renders nothing.
481//
482// hx-sse retries a lost connection for ever, with a growing delay. A refusal
483// that will not change (404: the repository is gone or hidden; 401) is handled
484// by ermiteLive.error, which has the page fetch itself again.
485func Live(l Layout) templ.Component {
486 return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
487 templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
488 if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
489 return templ_7745c5c3_CtxErr
490 }
491 templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
492 if !templ_7745c5c3_IsBuffer {
493 defer func() {
494 templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
495 if templ_7745c5c3_Err == nil {
496 templ_7745c5c3_Err = templ_7745c5c3_BufErr
497 }
498 }()
499 }
500 ctx = templ.InitializeContext(ctx)
501 templ_7745c5c3_Var22 := templ.GetChildren(ctx)
502 if templ_7745c5c3_Var22 == nil {
503 templ_7745c5c3_Var22 = templ.NopComponent
504 }
505 ctx = templ.ClearChildren(ctx)
506 if l.Live && l.LiveURL != "" {
507 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 26, "<span class=\"hint-live\" data-state=\"connecting\" hx-sse:connect=\"")
508 if templ_7745c5c3_Err != nil {
509 return templ_7745c5c3_Err
510 }
511 var templ_7745c5c3_Var23 string
512 templ_7745c5c3_Var23, templ_7745c5c3_Err = templ.ResolveAttributeValue(l.LiveURL)
513 if templ_7745c5c3_Err != nil {
514 return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/fragments.templ`, Line: 98, Col: 29}
515 }
516 _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var23)
517 if templ_7745c5c3_Err != nil {
518 return templ_7745c5c3_Err
519 }
520 templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 27, "\" hx-swap=\"none\" :text=\"data.state === 'offline' ? 'live updates paused' : ''\" hx-on=\"htmx:sse:after:connection -> ermiteLive.back();\n htmx:sse:close, htmx:sse:error -> ermiteLive.lost();\n htmx:sse:error -> ermiteLive.error(event.detail.status);\n htmx:sse:before:connection -> ermiteLive.gate(event);\n home-list, repo-last-push, refs-list, commits-head, mr-notice, mr-mergeability, ci-run, ci-job, inbox -> ermiteLive.swap(event.detail.data);\n gap -> ermiteLive.reload()\"></span>")
521 if templ_7745c5c3_Err != nil {
522 return templ_7745c5c3_Err
523 }
524 }
525 return nil
526 })
527}
528
529var _ = templruntime.GeneratedTemplate