refactor page/list movement

Signed-off-by: Hadi <112569860+anotherhadi@users.noreply.github.com>
This commit is contained in:
Hadi
2026-05-19 23:01:04 +02:00
parent 746f1afd1b
commit 924cb73afb
8 changed files with 115 additions and 254 deletions
+7 -35
View File
@@ -191,20 +191,12 @@ func (m Model) updateNormalMode(msg tea.KeyPressMsg) (tea.Model, tea.Cmd) {
case key.Matches(msg, g.ScrollUp):
vp := m.focusedViewport()
step := vp.Height() / 2
if step < 1 {
step = 1
}
vp.SetYOffset(vp.YOffset() - step)
util.ScrollViewport(&vp, -1)
m.setFocusedViewport(vp)
case key.Matches(msg, g.ScrollDown):
vp := m.focusedViewport()
step := vp.Height() / 2
if step < 1 {
step = 1
}
vp.SetYOffset(vp.YOffset() + step)
util.ScrollViewport(&vp, 1)
m.setFocusedViewport(vp)
case key.Matches(msg, g.Left):
@@ -247,37 +239,17 @@ func (m Model) updateNormalMode(msg tea.KeyPressMsg) (tea.Model, tea.Cmd) {
m.refreshBody()
case key.Matches(msg, keys.Keys.Global.GotoBottom):
if len(m.entries) > 0 {
m.cursor = len(m.entries) - 1
m.pager.Page = m.pager.TotalPages - 1
m.refreshListViewport()
m.refreshBody()
}
m.cursor = util.CursorGotoBottom(len(m.entries))
m.refreshListViewport()
m.refreshBody()
case key.Matches(msg, keys.Keys.Global.PrevPage):
step := m.pager.PerPage
if step < 1 {
step = 1
}
m.cursor -= step
if m.cursor < 0 {
m.cursor = 0
}
m.cursor = util.CursorMovePage(m.cursor, len(m.entries), m.pager.PerPage, false)
m.refreshListViewport()
m.refreshBody()
case key.Matches(msg, keys.Keys.Global.NextPage):
step := m.pager.PerPage
if step < 1 {
step = 1
}
m.cursor += step
if m.cursor >= len(m.entries) {
m.cursor = len(m.entries) - 1
if m.cursor < 0 {
m.cursor = 0
}
}
m.cursor = util.CursorMovePage(m.cursor, len(m.entries), m.pager.PerPage, true)
m.refreshListViewport()
m.refreshBody()