package routes import ( "net/http" "git.codemonkeysoftware.net/b/hatmill" "git.codemonkeysoftware.net/b/peachy-go/desktop/pages" "github.com/mavolin/go-htmx" ) /* Render the component, and if it's an HX request, only render the component. */ func HXRender[T hatmill.Term](w http.ResponseWriter, r *http.Request, component func() T) { hxRequest := htmx.Request(r) w.Header().Set("Content-Type", "text/html") // If it's an HX request, we only render the component. // If it's not, we render the whole page. if hxRequest == nil { hatmill.WriteDocument(w, pages.Page(component)) pages.Page(component) } else { component().WriteTo(w) } }