diff --git a/web/server.go b/web/server.go index 4b837c7..278676e 100644 --- a/web/server.go +++ b/web/server.go @@ -117,6 +117,7 @@ func (s *Server) routes() { s.router.Get("/admin", s.handleAdmin()) s.router.Get("/register", s.handleRegister()) + s.router.Get("/register/form", s.handleRegisterForm()) s.router.Route("/api/groups", func(r chi.Router) { r.Post("/", s.handleCreateGroup()) @@ -433,6 +434,27 @@ func (s *Server) handleRegister() http.HandlerFunc { } } +// handleRegisterForm returns just the registration form component +func (s *Server) handleRegisterForm() http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + // Get groups for the form + groups, err := s.db.GetGroups() + if err != nil { + s.logger.Error("Failed to get groups", "error", err) + http.Error(w, "Failed to get groups", http.StatusInternalServerError) + return + } + + // Render just the registration form component + component := templates.RegisterForm(groups) + if err := component.Render(r.Context(), w); err != nil { + s.logger.Error("Failed to render registration form", "error", err) + http.Error(w, "Failed to render registration form", http.StatusInternalServerError) + return + } + } +} + // API handlers for groups // handleCreateGroup creates a new group diff --git a/web/templates/admin.templ b/web/templates/admin.templ index 1cfdc8b..3efbaa0 100644 --- a/web/templates/admin.templ +++ b/web/templates/admin.templ @@ -33,7 +33,7 @@ templ Admin(groups []models.Group, racers []models.Racer) {