@@ -4,44 +4,45 @@ package handlers
44import (
55 "net/http"
66
7- "github.com/co-browser/agent-browser/internal/backend"
8- "github.com/co-browser/agent-browser/internal/backend/models"
97 "github.com/co-browser/agent-browser/internal/log"
108 "github.com/co-browser/agent-browser/internal/web/templates"
119)
1210
1311// UIHandler holds dependencies for UI handlers.
1412type UIHandler struct {
1513 log log.Logger
16- bs backend.Service // Add backend service dependency
1714}
1815
1916// NewUIHandler creates a handler for serving the main UI page.
20- // It now requires a logger and the backend service.
21- func NewUIHandler (logger log.Logger , bs backend.Service ) http.Handler {
22- h := & UIHandler {
23- log : logger ,
24- bs : bs , // Store backend service
25- }
26- return http .HandlerFunc (h .serveIndex )
17+ // It now requires a logger.
18+ func NewUIHandler (logger log.Logger ) http.Handler {
19+ h := & UIHandler {log : logger }
20+ mux := http .NewServeMux ()
21+
22+ mux .HandleFunc ("/ui" , h .serveIndex )
23+ mux .HandleFunc ("/ui/add" , h .serveAddPage )
24+
25+ return mux
2726}
2827
2928// serveIndex handles requests for the main UI page.
30- // It fetches the initial server list from the backend service.
3129func (h * UIHandler ) serveIndex (w http.ResponseWriter , r * http.Request ) {
32- // Fetch initial list of servers
33- servers , err := h .bs .ListMCPServers ()
34- if err != nil {
35- h .log .Error ().Err (err ).Msg ("failed to fetch initial server list for UI" )
36- // Proceed with rendering an empty list or show an error message
37- servers = []models.MCPServer {} // Initialize empty slice to prevent nil panic in template
38- // Optionally: render an error message instead of the list
39- // http.Error(w, "failed to load server list", http.StatusInternalServerError)
40- // return
41- }
42-
43- // Render the main page template, passing the servers
44- err = templates .IndexPage (servers ).Render (r .Context (), w )
30+ err := templates .IndexPage (templates.IndexPageProps {
31+ Servers : []domain.ServerItem {
32+ {
33+ Name : "Server Alpha" ,
34+ IP : "192.168.1.10" ,
35+ },
36+ {
37+ Name : "Server Beta" ,
38+ IP : "192.168.1.11" ,
39+ },
40+ {
41+ Name : "Server Charlie" ,
42+ IP : "192.168.1.12" ,
43+ },
44+ },
45+ }).Render (r .Context (), w )
4546 if err != nil {
4647 // Use the injected logger
4748 h .log .Error ().Err (err ).Msg ("failed to render index page template" )
0 commit comments