mirror of
https://github.com/gohugoio/hugo.git
synced 2025-08-22 21:42:50 +02:00
Don't fail when calling Paginate with an empty pages.PagesGroup
Fixes #10802
This commit is contained in:
@@ -430,14 +430,14 @@ func (psg PagesGroup) ProbablyEq(other any) bool {
|
||||
}
|
||||
|
||||
// ToPagesGroup tries to convert seq into a PagesGroup.
|
||||
func ToPagesGroup(seq any) (PagesGroup, error) {
|
||||
func ToPagesGroup(seq any) (PagesGroup, bool, error) {
|
||||
switch v := seq.(type) {
|
||||
case nil:
|
||||
return nil, nil
|
||||
return nil, true, nil
|
||||
case PagesGroup:
|
||||
return v, nil
|
||||
return v, true, nil
|
||||
case []PageGroup:
|
||||
return PagesGroup(v), nil
|
||||
return PagesGroup(v), true, nil
|
||||
case []any:
|
||||
l := len(v)
|
||||
if l == 0 {
|
||||
@@ -450,12 +450,12 @@ func ToPagesGroup(seq any) (PagesGroup, error) {
|
||||
if pg, ok := ipg.(PageGroup); ok {
|
||||
pagesGroup[i] = pg
|
||||
} else {
|
||||
return nil, fmt.Errorf("unsupported type in paginate from slice, got %T instead of PageGroup", ipg)
|
||||
return nil, false, fmt.Errorf("unsupported type in paginate from slice, got %T instead of PageGroup", ipg)
|
||||
}
|
||||
}
|
||||
return pagesGroup, nil
|
||||
return pagesGroup, true, nil
|
||||
}
|
||||
}
|
||||
|
||||
return nil, nil
|
||||
return nil, false, nil
|
||||
}
|
||||
|
@@ -277,11 +277,11 @@ func Paginate(td TargetPathDescriptor, seq any, pagerSize int) (*Paginator, erro
|
||||
|
||||
var paginator *Paginator
|
||||
|
||||
groups, err := ToPagesGroup(seq)
|
||||
groups, ok, err := ToPagesGroup(seq)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if groups != nil {
|
||||
if ok {
|
||||
paginator, _ = newPaginatorFromPageGroups(groups, pagerSize, urlFactory)
|
||||
} else {
|
||||
pages, err := ToPages(seq)
|
||||
|
Reference in New Issue
Block a user