fix(tui): broken tick chain after form/dialog + retries off-by-one
Update() routed form and confirm-delete states before handling time.Time ticks, so those handlers swallowed the tick command and permanently broke the refresh loop. After opening any form or delete dialog, the TUI stopped auto-refreshing until restarted. Move time.Time and WindowSizeMsg handling before state dispatch so ticks always fire regardless of view state. Also fix fmtRetries off-by-one: FailureCount=1 displayed as 0/N instead of 1/N due to an erroneous subtract-one.
This commit is contained in:
@@ -110,11 +110,7 @@ func fmtSSL(site models.Site) string {
|
||||
}
|
||||
|
||||
func fmtRetries(site models.Site) string {
|
||||
retriesDone := site.FailureCount - 1
|
||||
if retriesDone < 0 {
|
||||
retriesDone = 0
|
||||
}
|
||||
dispCount := retriesDone
|
||||
dispCount := site.FailureCount
|
||||
if dispCount > site.MaxRetries {
|
||||
dispCount = site.MaxRetries
|
||||
}
|
||||
|
||||
@@ -10,6 +10,13 @@ import (
|
||||
)
|
||||
|
||||
func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
|
||||
switch msg := msg.(type) {
|
||||
case tea.WindowSizeMsg:
|
||||
return m.handleResize(msg)
|
||||
case time.Time:
|
||||
return m.handleTick(msg)
|
||||
}
|
||||
|
||||
if m.state == stateConfirmDelete {
|
||||
return m.handleConfirmDelete(msg)
|
||||
}
|
||||
@@ -18,10 +25,6 @@ func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
|
||||
}
|
||||
|
||||
switch msg := msg.(type) {
|
||||
case tea.WindowSizeMsg:
|
||||
return m.handleResize(msg)
|
||||
case time.Time:
|
||||
return m.handleTick(msg)
|
||||
case tea.MouseMsg:
|
||||
return m.handleMouse(msg)
|
||||
case tea.KeyMsg:
|
||||
|
||||
Reference in New Issue
Block a user