From c6bca887cb41d617e76223161fe207f19f054de6 Mon Sep 17 00:00:00 2001 From: Hadi <112569860+anotherhadi@users.noreply.github.com> Date: Tue, 19 May 2026 21:58:26 +0200 Subject: [PATCH] Implement prevpage nextpage Signed-off-by: Hadi <112569860+anotherhadi@users.noreply.github.com> --- internal/ui/intercept/update.go | 54 +++++++++++++++++++++++++++++++++ internal/ui/plugins/update.go | 29 ++++++++++++++++++ 2 files changed, 83 insertions(+) diff --git a/internal/ui/intercept/update.go b/internal/ui/intercept/update.go index b40c89f..3ed3b14 100644 --- a/internal/ui/intercept/update.go +++ b/internal/ui/intercept/update.go @@ -289,6 +289,60 @@ func (m Model) updateNormalMode(msg tea.KeyPressMsg, cmds *[]tea.Cmd) (tea.Model m.refreshListViewport() m.refreshResponseListViewport() m.refreshBody() + + case key.Matches(msg, keys.Keys.Global.PrevPage): + if onResponses { + step := m.responsePager.PerPage + if step < 1 { + step = 1 + } + m.responseCursor -= step + if m.responseCursor < 0 { + m.responseCursor = 0 + } + } else { + step := m.pager.PerPage + if step < 1 { + step = 1 + } + m.cursor -= step + if m.cursor < 0 { + m.cursor = 0 + } + } + m.refreshListViewport() + m.refreshResponseListViewport() + m.refreshBody() + + case key.Matches(msg, keys.Keys.Global.NextPage): + if onResponses { + step := m.responsePager.PerPage + if step < 1 { + step = 1 + } + m.responseCursor += step + if m.responseCursor >= len(m.responseQueue) { + m.responseCursor = len(m.responseQueue) - 1 + if m.responseCursor < 0 { + m.responseCursor = 0 + } + } + } else { + step := m.pager.PerPage + if step < 1 { + step = 1 + } + m.cursor += step + if m.cursor >= len(m.queue) { + m.cursor = len(m.queue) - 1 + if m.cursor < 0 { + m.cursor = 0 + } + } + } + m.refreshListViewport() + m.refreshResponseListViewport() + m.refreshBody() } return m, tea.Batch(*cmds...) diff --git a/internal/ui/plugins/update.go b/internal/ui/plugins/update.go index db0435c..4b87bab 100644 --- a/internal/ui/plugins/update.go +++ b/internal/ui/plugins/update.go @@ -128,6 +128,35 @@ func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) { m.textarea.Focus() } + case key.Matches(msg, g.PrevPage): + step := m.pager.PerPage + if step < 1 { + step = 1 + } + m.cursor -= step + if m.cursor < 0 { + m.cursor = 0 + } + m.recalcSizes() + m.syncTextarea() + m.detailViewport.GotoTop() + + case key.Matches(msg, g.NextPage): + step := m.pager.PerPage + if step < 1 { + step = 1 + } + m.cursor += step + if m.cursor >= len(m.filtered) { + m.cursor = len(m.filtered) - 1 + if m.cursor < 0 { + m.cursor = 0 + } + } + m.recalcSizes() + m.syncTextarea() + m.detailViewport.GotoTop() + case key.Matches(msg, g.ScrollUp): step := m.detailViewport.Height() / 2 if step < 1 {