diff options
Diffstat (limited to 'resources/page/pages_prev_next.go')
-rw-r--r-- | resources/page/pages_prev_next.go | 27 |
1 files changed, 11 insertions, 16 deletions
diff --git a/resources/page/pages_prev_next.go b/resources/page/pages_prev_next.go index dd87aa4ce..dd767c667 100644 --- a/resources/page/pages_prev_next.go +++ b/resources/page/pages_prev_next.go @@ -15,26 +15,21 @@ package page // Next returns the next page reletive to the given func (p Pages) Next(cur Page) Page { - for x, c := range p { - if c.Eq(cur) { - if x == 0 { - return nil - } - return p[x-1] - } + x := searchPage(cur, p) + if x <= 0 { + return nil } - return nil + return p[x-1] } // Prev returns the previous page reletive to the given func (p Pages) Prev(cur Page) Page { - for x, c := range p { - if c.Eq(cur) { - if x < len(p)-1 { - return p[x+1] - } - return nil - } + x := searchPage(cur, p) + + if x == -1 || len(p)-x < 2 { + return nil } - return nil + + return p[x+1] + } |