From f89322f2df7d306a8bf90b04d5208d2ea3bf2db6 Mon Sep 17 00:00:00 2001 From: Xe Iaso Date: Fri, 29 Aug 2025 19:34:06 +0000 Subject: [PATCH] fix(challenges/xeact): make a UI render without JS Signed-off-by: Xe Iaso --- lib/challenge/preact/js/app.jsx | 3 +- lib/challenge/preact/preact.templ | 4 ++- lib/challenge/preact/preact_templ.go | 53 ++++++++++++++++++++++++---- 3 files changed, 51 insertions(+), 9 deletions(-) diff --git a/lib/challenge/preact/js/app.jsx b/lib/challenge/preact/js/app.jsx index 54cfafcc..f1321b86 100644 --- a/lib/challenge/preact/js/app.jsx +++ b/lib/challenge/preact/js/app.jsx @@ -1,6 +1,6 @@ import { render, h, Fragment } from 'preact'; import { useState, useEffect } from 'preact/hooks'; -import { g, j, u } from "./xeact.js"; +import { g, j, u, x } from "./xeact.js"; import { Sha256 } from '@aws-crypto/sha256-js'; /** @jsx h */ @@ -58,4 +58,5 @@ const App = () => { ); }; +x(g("app")); render(, g("app")); \ No newline at end of file diff --git a/lib/challenge/preact/preact.templ b/lib/challenge/preact/preact.templ index b698154c..ee2cb986 100644 --- a/lib/challenge/preact/preact.templ +++ b/lib/challenge/preact/preact.templ @@ -8,7 +8,9 @@ import ( templ page(redir, challenge string, difficulty int, loc *localization.SimpleLocalizer) {
- { loc.T("loading") } + { loc.T("loading") }

+

{ loc.T("connection_security") }

@templ.JSONScript("preact_info", map[string]any{ "redir": redir, diff --git a/lib/challenge/preact/preact_templ.go b/lib/challenge/preact/preact_templ.go index 7e683843..aa78c3c6 100644 --- a/lib/challenge/preact/preact_templ.go +++ b/lib/challenge/preact/preact_templ.go @@ -34,7 +34,46 @@ func page(redir, challenge string, difficulty int, loc *localization.SimpleLocal templ_7745c5c3_Var1 = templ.NopComponent } ctx = templ.ClearChildren(ctx) - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "
") + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "

") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + var templ_7745c5c3_Var3 string + templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinStringErrs(loc.T("loading")) + if templ_7745c5c3_Err != nil { + return templ.Error{Err: templ_7745c5c3_Err, FileName: `preact.templ`, Line: 12, Col: 36} + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3)) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 3, "

") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + var templ_7745c5c3_Var4 string + templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinStringErrs(loc.T("connection_security")) + if templ_7745c5c3_Err != nil { + return templ.Error{Err: templ_7745c5c3_Err, FileName: `preact.templ`, Line: 13, Col: 36} + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var4)) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 4, "

") if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } @@ -53,20 +92,20 @@ func page(redir, challenge string, difficulty int, loc *localization.SimpleLocal if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 2, "
") + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 6, "
") if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err }