summaryrefslogtreecommitdiff
path: root/internal/handlers/handlers.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/handlers/handlers.go')
-rw-r--r--internal/handlers/handlers.go17
1 files changed, 16 insertions, 1 deletions
diff --git a/internal/handlers/handlers.go b/internal/handlers/handlers.go
index f31fc56..ed100fc 100644
--- a/internal/handlers/handlers.go
+++ b/internal/handlers/handlers.go
@@ -55,8 +55,14 @@ func New(store *store.Store, todoist api.TodoistAPI, trello api.TrelloAPI, obsid
func (h *Handler) HandleDashboard(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()
+ // Extract tab query parameter for state persistence
+ tab := r.URL.Query().Get("tab")
+ if tab == "" {
+ tab = "tasks"
+ }
+
// Aggregate data from all sources
- data, err := h.aggregateData(ctx, false)
+ dashboardData, err := h.aggregateData(ctx, false)
if err != nil {
http.Error(w, "Failed to load dashboard data", http.StatusInternalServerError)
log.Printf("Error aggregating data: %v", err)
@@ -69,6 +75,15 @@ func (h *Handler) HandleDashboard(w http.ResponseWriter, r *http.Request) {
return
}
+ // Wrap dashboard data with active tab for template
+ data := struct {
+ *models.DashboardData
+ ActiveTab string
+ }{
+ DashboardData: dashboardData,
+ ActiveTab: tab,
+ }
+
if err := h.templates.ExecuteTemplate(w, "index.html", data); err != nil {
http.Error(w, "Failed to render template", http.StatusInternalServerError)
log.Printf("Error rendering template: %v", err)