package webui import ( "context" "fmt" "html" "io" "github.com/a-h/templ" ) type AuthPageData struct { Username string Error string } func Signup(data AuthPageData) templ.Component { return authPage( "Sign up", "Create your account", "First account created becomes the initial admin.", "/signup", "Create account", "/signin", "Already have an account? Sign in", data, ) } func Signin(data AuthPageData) templ.Component { return authPage( "Sign in", "Welcome back", "Sign in to manage backup infrastructure.", "/signin", "Sign in", "/signup", "Need an account? Sign up", data, ) } func authPage( title string, heading string, description string, action string, submitLabel string, switchHref string, switchLabel string, data AuthPageData, ) templ.Component { return templ.ComponentFunc(func(_ context.Context, w io.Writer) error { errBlock := "" if data.Error != "" { errBlock = fmt.Sprintf(`

%s

`, html.EscapeString(data.Error)) } _, err := io.WriteString(w, fmt.Sprintf(` %s ยท Satoru

Satoru

%s

%s

%s

%s

`, html.EscapeString(title), html.EscapeString(heading), html.EscapeString(description), errBlock, html.EscapeString(action), html.EscapeString(data.Username), html.EscapeString(submitLabel), html.EscapeString(switchHref), html.EscapeString(switchLabel), )) return err }) }