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 {
|
func fmtRetries(site models.Site) string {
|
||||||
retriesDone := site.FailureCount - 1
|
dispCount := site.FailureCount
|
||||||
if retriesDone < 0 {
|
|
||||||
retriesDone = 0
|
|
||||||
}
|
|
||||||
dispCount := retriesDone
|
|
||||||
if dispCount > site.MaxRetries {
|
if dispCount > site.MaxRetries {
|
||||||
dispCount = site.MaxRetries
|
dispCount = site.MaxRetries
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,6 +10,13 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
|
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 {
|
if m.state == stateConfirmDelete {
|
||||||
return m.handleConfirmDelete(msg)
|
return m.handleConfirmDelete(msg)
|
||||||
}
|
}
|
||||||
@@ -18,10 +25,6 @@ func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
switch msg := msg.(type) {
|
switch msg := msg.(type) {
|
||||||
case tea.WindowSizeMsg:
|
|
||||||
return m.handleResize(msg)
|
|
||||||
case time.Time:
|
|
||||||
return m.handleTick(msg)
|
|
||||||
case tea.MouseMsg:
|
case tea.MouseMsg:
|
||||||
return m.handleMouse(msg)
|
return m.handleMouse(msg)
|
||||||
case tea.KeyMsg:
|
case tea.KeyMsg:
|
||||||
|
|||||||
Reference in New Issue
Block a user