From 8ba5c1fa0dc3b285004f1298f01a34a95aededd8 Mon Sep 17 00:00:00 2001 From: Christian Rocha Date: Fri, 15 May 2020 13:25:12 -0400 Subject: [PATCH] Spilling over top/bottom in stash browser goes to the prev/next page --- ui/stash.go | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/ui/stash.go b/ui/stash.go index 41b6d18..dd03949 100644 --- a/ui/stash.go +++ b/ui/stash.go @@ -120,13 +120,30 @@ func stashUpdate(msg boba.Msg, m stashModel) (stashModel, boba.Cmd) { case "k": fallthrough case "up": - m.index = max(0, m.index-1) + m.index-- + if m.index < 0 && m.paginator.Page == 0 { + // Stop + m.index = 0 + } else if m.index < 0 { + // Go to previous page + m.paginator.PrevPage() + m.index = m.paginator.ItemsOnPage(len(m.documents)) - 1 + } return m, nil case "j": fallthrough case "down": - m.index = min(m.paginator.ItemsOnPage(len(m.documents))-1, m.index+1) + itemsOnPage := m.paginator.ItemsOnPage(len(m.documents)) + m.index++ + if m.index >= itemsOnPage && m.paginator.OnLastPage() { + // Stop + m.index = itemsOnPage - 1 + } else if m.index >= itemsOnPage { + // Go to next page + m.index = 0 + m.paginator.NextPage() + } return m, nil case "enter":