You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

27 lines
1010 B
Go

package navigation
// PaginationBinder is an interface that everything that every type that wants to bind to a pagination component must implement.
type PaginationBinder interface {
PaginationPage() int // Page returns the current page, as a 1-based index. A value of 0 means there is no active page.
PaginationPages() int // Pages returns the total number of pages.
SetPaginationPage(page int) // SetPage changes the current page as a 1-based index. A value of 0 means there is no active page.
}
// PaginationInfo implements the PaginationBinder interface and represents the current state of a pagination component.
type PaginationInfo struct {
Page int // The current page as a 1-based index. A value of 0 means there is no current page.
Pages int // The number of total pages.
}
func (p *PaginationInfo) PaginationPage() int {
return p.Page
}
func (p *PaginationInfo) PaginationPages() int {
return p.Pages
}
func (p *PaginationInfo) SetPaginationPage(page int) {
p.Page = page
}