@@ -26,6 +26,15 @@ func NewModelsList(sty *styles.Styles, groups ...ModelGroup) *ModelsList {
2626 return f
2727}
2828
29+// Len returns the number of model items across all groups.
30+func (f *ModelsList) Len() int {
31+ n := 0
32+ for _, g := range f.groups {
33+ n += len(g.Items)
34+ }
35+ return n
36+}
37+
2938// SetGroups sets the model groups and updates the list items.
3039func (f *ModelsList) SetGroups(groups ...ModelGroup) {
3140 f.groups = groups
@@ -81,7 +90,7 @@ func (f *ModelsList) VisibleItems() []list.Item {
8190 return items
8291 }
8392
84− filterableItems := []list.FilterableItem{}
93+ filterableItems := make([]list.FilterableItem, 0, f.Len())
8594 for _, g := range f.groups {
8695 for _, item := range g.Items {
8796 filterableItems = append(filterableItems, item)