1
0
mirror of https://github.com/jesseduffield/lazygit.git synced 2025-07-30 03:23:08 +03:00

use generics to DRY up context code

This commit is contained in:
Jesse Duffield
2022-03-19 09:31:52 +11:00
parent 4b56d428ff
commit d93fef4c61
31 changed files with 117 additions and 364 deletions

View File

@ -2,7 +2,6 @@ package context
import (
"github.com/jesseduffield/gocui"
"github.com/jesseduffield/lazygit/pkg/gui/context/traits"
"github.com/jesseduffield/lazygit/pkg/gui/presentation"
"github.com/jesseduffield/lazygit/pkg/gui/types"
)
@ -59,8 +58,8 @@ func (self *MenuContext) GetSelectedItemId() string {
}
type MenuViewModel struct {
*traits.ListCursor
menuItems []*types.MenuItem
*BasicViewModel[*types.MenuItem]
}
func NewMenuViewModel() *MenuViewModel {
@ -68,23 +67,11 @@ func NewMenuViewModel() *MenuViewModel {
menuItems: nil,
}
self.ListCursor = traits.NewListCursor(self)
self.BasicViewModel = NewBasicViewModel(func() []*types.MenuItem { return self.menuItems })
return self
}
func (self *MenuViewModel) GetItemsLength() int {
return len(self.menuItems)
}
func (self *MenuViewModel) GetSelected() *types.MenuItem {
if self.GetItemsLength() == 0 {
return nil
}
return self.menuItems[self.GetSelectedLineIdx()]
}
func (self *MenuViewModel) SetMenuItems(items []*types.MenuItem) {
self.menuItems = items
}