D3vugu-components/components/navigation/pagination-binder.go
David Vogel c149bbfc06 Use binding mechanism for the Pagination component
- Rename PaginationEvent to PaginateEvent
- Add PaginationBinder interface
2023-05-29 14:23:37 +02:00

27 lines
982 B
Go

package navigation
// PaginationBinder is an interface that everything that every type that wants to bind to an pagination component must implement.
type PaginationBinder interface {
Page() int // Page returns the current page, as a 1-based index. A value of 0 means there is no active page.
Pages() int // Pages returns the total number of pages.
SetPage(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 {
CurrentPage int // The current page as a 1-based index. A value of 0 means there is no current page.
TotalPages int // The number of total pages.
}
func (p *PaginationInfo) Page() int {
return p.CurrentPage
}
func (p *PaginationInfo) Pages() int {
return p.TotalPages
}
func (p *PaginationInfo) SetPage(page int) {
p.CurrentPage = page
}