diff --git a/internal/handler/space.go b/internal/handler/space.go index 198aafe..7884b4d 100644 --- a/internal/handler/space.go +++ b/internal/handler/space.go @@ -684,7 +684,12 @@ func (h *SpaceHandler) UpdateExpense(w http.ResponseWriter, r *http.Request) { Tags: tagsMap[updatedExpense.ID], } - ui.Render(w, r, pages.ExpenseListItem(spaceID, expWithTags)) + balance, err := h.expenseService.GetBalanceForSpace(spaceID) + if err != nil { + slog.Error("failed to get balance after update", "error", err, "space_id", spaceID) + } + + ui.Render(w, r, pages.ExpenseUpdatedResponse(spaceID, expWithTags, balance)) } func (h *SpaceHandler) DeleteExpense(w http.ResponseWriter, r *http.Request) { @@ -701,7 +706,12 @@ func (h *SpaceHandler) DeleteExpense(w http.ResponseWriter, r *http.Request) { return } - w.WriteHeader(http.StatusOK) + balance, err := h.expenseService.GetBalanceForSpace(spaceID) + if err != nil { + slog.Error("failed to get balance after delete", "error", err, "space_id", spaceID) + } + + ui.Render(w, r, expense.BalanceCard(spaceID, balance, true)) } func (h *SpaceHandler) CreateInvite(w http.ResponseWriter, r *http.Request) { diff --git a/internal/ui/pages/app_space_expenses.templ b/internal/ui/pages/app_space_expenses.templ index 2b69570..0e3e0ad 100644 --- a/internal/ui/pages/app_space_expenses.templ +++ b/internal/ui/pages/app_space_expenses.templ @@ -149,3 +149,8 @@ templ ExpenseCreatedResponse(spaceID string, newExpense *model.ExpenseWithTags, @ExpenseListItem(spaceID, newExpense) @expense.BalanceCard(newExpense.SpaceID, balance, true) } + +templ ExpenseUpdatedResponse(spaceID string, exp *model.ExpenseWithTags, balance int) { + @ExpenseListItem(spaceID, exp) + @expense.BalanceCard(exp.SpaceID, balance, true) +}