diff --git a/internal/ui/findings/update.go b/internal/ui/findings/update.go index e44538a..a48da9c 100644 --- a/internal/ui/findings/update.go +++ b/internal/ui/findings/update.go @@ -19,7 +19,12 @@ func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) { if m.cursor >= len(m.findings) { m.cursor = max(0, len(m.findings)-1) } - m.pager.SetTotalPages(len(m.findings)) + if len(m.findings) == 0 { + m.pager.Page = 0 + m.pager.TotalPages = 0 + } else { + m.pager.SetTotalPages(len(m.findings)) + } m.refreshListViewport() m.refreshBody() return m, nil diff --git a/internal/ui/findings/view.go b/internal/ui/findings/view.go index df06dbb..35a4f63 100644 --- a/internal/ui/findings/view.go +++ b/internal/ui/findings/view.go @@ -28,7 +28,10 @@ func (m Model) View() tea.View { func (m *Model) renderListPanel(w, h int) string { s := style.S - dots := s.Faint.Render(m.pager.View()) + var dots string + if len(m.findings) > 0 { + dots = s.Faint.Render(m.pager.View()) + } inner := lipgloss.JoinVertical(lipgloss.Left, m.listViewport.View(), lipgloss.PlaceHorizontal(m.listViewport.Width(), lipgloss.Center, dots), diff --git a/internal/ui/history/update.go b/internal/ui/history/update.go index 28bcedc..42ded2c 100644 --- a/internal/ui/history/update.go +++ b/internal/ui/history/update.go @@ -282,8 +282,13 @@ func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) { func (m *Model) refreshListViewport() { if m.pager.PerPage > 0 { - m.pager.Page = m.cursor / m.pager.PerPage - m.pager.SetTotalPages(len(m.entries)) + if len(m.entries) == 0 { + m.pager.Page = 0 + m.pager.TotalPages = 0 + } else { + m.pager.Page = m.cursor / m.pager.PerPage + m.pager.SetTotalPages(len(m.entries)) + } } m.listViewport.SetContent(m.renderList()) } diff --git a/internal/ui/history/view.go b/internal/ui/history/view.go index 5c826d7..b55fe7a 100644 --- a/internal/ui/history/view.go +++ b/internal/ui/history/view.go @@ -28,7 +28,10 @@ func (m Model) View() tea.View { func (m *Model) renderListPanel(w, h int) string { s := style.S - dots := s.Faint.Render(m.pager.View()) + var dots string + if len(m.entries) > 0 { + dots = s.Faint.Render(m.pager.View()) + } inner := lipgloss.JoinVertical(lipgloss.Left, m.listViewport.View(), lipgloss.PlaceHorizontal(m.listViewport.Width(), lipgloss.Center, dots), diff --git a/internal/ui/intercept/helpers.go b/internal/ui/intercept/helpers.go index 75cd898..410caee 100644 --- a/internal/ui/intercept/helpers.go +++ b/internal/ui/intercept/helpers.go @@ -295,16 +295,26 @@ func (m *Model) recalcSizes() { func (m *Model) refreshListViewport() { if m.pager.PerPage > 0 { - m.pager.Page = m.cursor / m.pager.PerPage - m.pager.SetTotalPages(len(m.queue)) + if len(m.queue) == 0 { + m.pager.Page = 0 + m.pager.TotalPages = 0 + } else { + m.pager.Page = m.cursor / m.pager.PerPage + m.pager.SetTotalPages(len(m.queue)) + } } m.listViewport.SetContent(m.renderList()) } func (m *Model) refreshResponseListViewport() { if m.responsePager.PerPage > 0 { - m.responsePager.Page = m.responseCursor / m.responsePager.PerPage - m.responsePager.SetTotalPages(len(m.responseQueue)) + if len(m.responseQueue) == 0 { + m.responsePager.Page = 0 + m.responsePager.TotalPages = 0 + } else { + m.responsePager.Page = m.responseCursor / m.responsePager.PerPage + m.responsePager.SetTotalPages(len(m.responseQueue)) + } } m.responseViewport.SetContent(m.renderResponseList()) } diff --git a/internal/ui/intercept/view.go b/internal/ui/intercept/view.go index 7c6e468..26e9a05 100644 --- a/internal/ui/intercept/view.go +++ b/internal/ui/intercept/view.go @@ -45,7 +45,10 @@ func (m *Model) renderListPanel(w, h int) string { border = s.PanelFocused } - dots := s.Faint.Render(m.pager.View()) + var dots string + if len(m.queue) > 0 { + dots = s.Faint.Render(m.pager.View()) + } inner := lipgloss.JoinVertical(lipgloss.Left, m.listViewport.View(), lipgloss.PlaceHorizontal(m.listViewport.Width(), lipgloss.Center, dots), diff --git a/internal/ui/plugins/model.go b/internal/ui/plugins/model.go index aff98aa..424a8bf 100644 --- a/internal/ui/plugins/model.go +++ b/internal/ui/plugins/model.go @@ -187,8 +187,13 @@ func (m *Model) syncDetailViewport() { func (m *Model) refreshListViewport() { if m.pager.PerPage > 0 { - m.pager.Page = m.cursor / m.pager.PerPage - m.pager.SetTotalPages(len(m.filtered)) + if len(m.filtered) == 0 { + m.pager.Page = 0 + m.pager.TotalPages = 0 + } else { + m.pager.Page = m.cursor / m.pager.PerPage + m.pager.SetTotalPages(len(m.filtered)) + } } m.listViewport.SetContent(m.renderList()) } diff --git a/internal/ui/plugins/view.go b/internal/ui/plugins/view.go index 505759f..b8e92df 100644 --- a/internal/ui/plugins/view.go +++ b/internal/ui/plugins/view.go @@ -34,7 +34,10 @@ func (m *Model) renderListPanel(w, h int) string { if m.editing { panelStyle = s.Panel } - dots := s.Faint.Render(m.pager.View()) + var dots string + if len(m.filtered) > 0 { + dots = s.Faint.Render(m.pager.View()) + } inner := lipgloss.JoinVertical(lipgloss.Left, m.listViewport.View(), lipgloss.PlaceHorizontal(m.listViewport.Width(), lipgloss.Center, dots), diff --git a/internal/ui/replay/update.go b/internal/ui/replay/update.go index a33f6c8..0a022ce 100644 --- a/internal/ui/replay/update.go +++ b/internal/ui/replay/update.go @@ -242,8 +242,13 @@ func (m Model) updateEditMode(msg tea.KeyPressMsg) (tea.Model, tea.Cmd) { func (m *Model) refreshListViewport() { if m.pager.PerPage > 0 { - m.pager.Page = m.cursor / m.pager.PerPage - m.pager.SetTotalPages(len(m.entries)) + if len(m.entries) == 0 { + m.pager.Page = 0 + m.pager.TotalPages = 0 + } else { + m.pager.Page = m.cursor / m.pager.PerPage + m.pager.SetTotalPages(len(m.entries)) + } } m.listViewport.SetContent(m.renderList()) } diff --git a/internal/ui/replay/view.go b/internal/ui/replay/view.go index c979ddb..06ec4c2 100644 --- a/internal/ui/replay/view.go +++ b/internal/ui/replay/view.go @@ -37,7 +37,10 @@ func (m *Model) renderListPanel(w, h int) string { if m.editing { panelStyle = s.Panel } - dots := s.Faint.Render(m.pager.View()) + var dots string + if len(m.entries) > 0 { + dots = s.Faint.Render(m.pager.View()) + } inner := lipgloss.JoinVertical(lipgloss.Left, m.listViewport.View(), lipgloss.PlaceHorizontal(m.listViewport.Width(), lipgloss.Center, dots),