Change paginator dots when no entry

Signed-off-by: Hadi <112569860+anotherhadi@users.noreply.github.com>
This commit is contained in:
Hadi
2026-05-18 23:33:30 +02:00
parent 789a513469
commit 3b6b58ac2b
10 changed files with 61 additions and 16 deletions
+5
View File
@@ -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)
}
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
+4 -1
View File
@@ -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),
+5
View File
@@ -282,9 +282,14 @@ func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
func (m *Model) refreshListViewport() {
if m.pager.PerPage > 0 {
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())
}
+4 -1
View File
@@ -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),
+10
View File
@@ -295,17 +295,27 @@ func (m *Model) recalcSizes() {
func (m *Model) refreshListViewport() {
if m.pager.PerPage > 0 {
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 {
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())
}
+4 -1
View File
@@ -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),
+5
View File
@@ -187,9 +187,14 @@ func (m *Model) syncDetailViewport() {
func (m *Model) refreshListViewport() {
if m.pager.PerPage > 0 {
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())
}
+4 -1
View File
@@ -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),
+5
View File
@@ -242,9 +242,14 @@ func (m Model) updateEditMode(msg tea.KeyPressMsg) (tea.Model, tea.Cmd) {
func (m *Model) refreshListViewport() {
if m.pager.PerPage > 0 {
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())
}
+4 -1
View File
@@ -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),