summaryrefslogtreecommitdiffstats
path: root/pkg/gui/context/reflog_commits_context.go
diff options
context:
space:
mode:
authorJesse Duffield <jessedduffield@gmail.com>2022-03-19 09:31:52 +1100
committerJesse Duffield <jessedduffield@gmail.com>2022-03-19 12:12:57 +1100
commitd93fef4c61db20dd9e2bb535c2fbb742cdbed60a (patch)
tree0e065ab7f334ea44b4597a79f6f8e36a018f2a15 /pkg/gui/context/reflog_commits_context.go
parent4b56d428ffda44cf433d7cfdd83ea99417ec3e86 (diff)
use generics to DRY up context code
Diffstat (limited to 'pkg/gui/context/reflog_commits_context.go')
-rw-r--r--pkg/gui/context/reflog_commits_context.go34
1 files changed, 3 insertions, 31 deletions
diff --git a/pkg/gui/context/reflog_commits_context.go b/pkg/gui/context/reflog_commits_context.go
index fa136a7d4..815805515 100644
--- a/pkg/gui/context/reflog_commits_context.go
+++ b/pkg/gui/context/reflog_commits_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 ReflogCommitsContext struct {
- *ReflogCommitsViewModel
+ *BasicViewModel[*models.Commit]
*ListContextTrait
}
@@ -25,10 +24,10 @@ func NewReflogCommitsContext(
c *types.HelperCommon,
) *ReflogCommitsContext {
- viewModel := NewReflogCommitsViewModel(getModel)
+ viewModel := NewBasicViewModel(getModel)
return &ReflogCommitsContext{
- ReflogCommitsViewModel: viewModel,
+ BasicViewModel: viewModel,
ListContextTrait: &ListContextTrait{
Context: NewSimpleContext(NewBaseContext(NewBaseContextOpts{
ViewName: "commits",
@@ -71,30 +70,3 @@ func (self *ReflogCommitsContext) GetSelectedRefName() string {
return item.RefName()
}
-
-type ReflogCommitsViewModel struct {
- *traits.ListCursor
- getModel func() []*models.Commit
-}
-
-func NewReflogCommitsViewModel(getModel func() []*models.Commit) *ReflogCommitsViewModel {
- self := &ReflogCommitsViewModel{
- getModel: getModel,
- }
-
- self.ListCursor = traits.NewListCursor(self)
-
- return self
-}
-
-func (self *ReflogCommitsViewModel) GetItemsLength() int {
- return len(self.getModel())
-}
-
-func (self *ReflogCommitsViewModel) GetSelected() *models.Commit {
- if self.GetItemsLength() == 0 {
- return nil
- }
-
- return self.getModel()[self.GetSelectedLineIdx()]
-}