From f7303c946c642e181b5ddcf81ff13dc9d4d29192 Mon Sep 17 00:00:00 2001 From: Tyler Koenig Date: Tue, 30 Jun 2026 21:33:39 -0400 Subject: [PATCH] =?UTF-8?q?fix(tui):=20show=20=E2=80=94=20for=20uptime=20w?= =?UTF-8?q?hen=20monitor=20is=20in=20maintenance?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Monitors in active maintenance now display — instead of a misleading 0.0% uptime in both the main table and detail sidebar. --- internal/tui/format.go | 7 +++++++ internal/tui/tab_sites.go | 2 +- internal/tui/view_detail_inline.go | 6 +++++- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/internal/tui/format.go b/internal/tui/format.go index b177f63..31f0881 100644 --- a/internal/tui/format.go +++ b/internal/tui/format.go @@ -104,6 +104,13 @@ func (m Model) fmtLatency(d time.Duration) string { return m.st.dangerStyle.Render(s) } +func (m Model) fmtUptimeMaint(statuses []bool, siteID int) string { + if m.isMonitorInMaintenance(siteID) { + return m.st.subtleStyle.Render("—") + } + return m.fmtUptime(statuses) +} + func (m Model) fmtUptime(statuses []bool) string { if len(statuses) == 0 { return m.st.subtleStyle.Render("—") diff --git a/internal/tui/tab_sites.go b/internal/tui/tab_sites.go index 45464a0..16493b2 100644 --- a/internal/tui/tab_sites.go +++ b/internal/tui/tab_sites.go @@ -299,7 +299,7 @@ func (m Model) viewSitesTab() string { colType: typeIcon(site.Type, false) + " " + site.Type, colStatus: m.fmtStatus(site.Status, site.Paused, m.isMonitorInMaintenance(site.ID)), colLatency: m.fmtLatency(site.Latency), - colUptime: m.fmtUptime(hist.Statuses), + colUptime: m.fmtUptimeMaint(hist.Statuses, site.ID), colHistory: spark, colSSL: m.fmtSSL(site), colRetries: m.fmtRetries(site), diff --git a/internal/tui/view_detail_inline.go b/internal/tui/view_detail_inline.go index 1d35f30..ebf6da3 100644 --- a/internal/tui/view_detail_inline.go +++ b/internal/tui/view_detail_inline.go @@ -53,7 +53,11 @@ func (m Model) viewDetailSidebar(site models.Site, hist monitor.SiteHistory, wid } // Uptime + retries - uptimeParts := []string{label.Render("Uptime") + " " + m.fmtUptime(hist.Statuses)} + uptimeStr := m.fmtUptime(hist.Statuses) + if m.isMonitorInMaintenance(site.ID) { + uptimeStr = m.st.subtleStyle.Render("—") + } + uptimeParts := []string{label.Render("Uptime") + " " + uptimeStr} if site.Type != "group" && site.MaxRetries > 0 { uptimeParts = append(uptimeParts, label.Render("Retries")+" "+m.fmtRetries(site)) }