diff options
author | Jesse Duffield <jessedduffield@gmail.com> | 2022-03-19 09:31:52 +1100 |
---|---|---|
committer | Jesse Duffield <jessedduffield@gmail.com> | 2022-03-19 12:12:57 +1100 |
commit | d93fef4c61db20dd9e2bb535c2fbb742cdbed60a (patch) | |
tree | 0e065ab7f334ea44b4597a79f6f8e36a018f2a15 /pkg/gui/context/remotes_context.go | |
parent | 4b56d428ffda44cf433d7cfdd83ea99417ec3e86 (diff) |
use generics to DRY up context code
Diffstat (limited to 'pkg/gui/context/remotes_context.go')
-rw-r--r-- | pkg/gui/context/remotes_context.go | 34 |
1 files changed, 3 insertions, 31 deletions
diff --git a/pkg/gui/context/remotes_context.go b/pkg/gui/context/remotes_context.go index 2b6afdeb5..9cb0b6054 100644 --- a/pkg/gui/context/remotes_context.go +++ b/pkg/gui/context/remotes_context.go @@ -3,12 +3,11 @@ package context import ( "github.com/jesseduffield/gocui" "github.com/jesseduffield/lazygit/pkg/commands/models" - "github.com/jesseduffield/lazygit/pkg/gui/context/traits" "github.com/jesseduffield/lazygit/pkg/gui/types" ) type RemotesContext struct { - *RemotesViewModel + *BasicViewModel[*models.Remote] *ListContextTrait } @@ -25,10 +24,10 @@ func NewRemotesContext( c *types.HelperCommon, ) *RemotesContext { - viewModel := NewRemotesViewModel(getModel) + viewModel := NewBasicViewModel(getModel) return &RemotesContext{ - RemotesViewModel: viewModel, + BasicViewModel: viewModel, ListContextTrait: &ListContextTrait{ Context: NewSimpleContext(NewBaseContext(NewBaseContextOpts{ ViewName: "branches", @@ -57,30 +56,3 @@ func (self *RemotesContext) GetSelectedItemId() string { return item.ID() } - -type RemotesViewModel struct { - *traits.ListCursor - getModel func() []*models.Remote -} - -func NewRemotesViewModel(getModel func() []*models.Remote) *RemotesViewModel { - self := &RemotesViewModel{ - getModel: getModel, - } - - self.ListCursor = traits.NewListCursor(self) - - return self -} - -func (self *RemotesViewModel) GetItemsLength() int { - return len(self.getModel()) -} - -func (self *RemotesViewModel) GetSelected() *models.Remote { - if self.GetItemsLength() == 0 { - return nil - } - - return self.getModel()[self.GetSelectedLineIdx()] -} |