mirror of
				https://github.com/jesseduffield/lazygit.git
				synced 2025-10-30 23:57:43 +02:00 
			
		
		
		
	
		
			
				
	
	
		
			74 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package context
 | |
| 
 | |
| import (
 | |
| 	"github.com/jesseduffield/gocui"
 | |
| 	"github.com/jesseduffield/lazygit/pkg/commands/models"
 | |
| 	"github.com/jesseduffield/lazygit/pkg/gui/types"
 | |
| )
 | |
| 
 | |
| type ReflogCommitsContext struct {
 | |
| 	*BasicViewModel[*models.Commit]
 | |
| 	*ListContextTrait
 | |
| }
 | |
| 
 | |
| var _ types.IListContext = (*ReflogCommitsContext)(nil)
 | |
| 
 | |
| func NewReflogCommitsContext(
 | |
| 	getModel func() []*models.Commit,
 | |
| 	view *gocui.View,
 | |
| 	getDisplayStrings func(startIdx int, length int) [][]string,
 | |
| 
 | |
| 	onFocus func(types.OnFocusOpts) error,
 | |
| 	onRenderToMain func() error,
 | |
| 	onFocusLost func(opts types.OnFocusLostOpts) error,
 | |
| 
 | |
| 	c *types.HelperCommon,
 | |
| ) *ReflogCommitsContext {
 | |
| 	viewModel := NewBasicViewModel(getModel)
 | |
| 
 | |
| 	return &ReflogCommitsContext{
 | |
| 		BasicViewModel: viewModel,
 | |
| 		ListContextTrait: &ListContextTrait{
 | |
| 			Context: NewSimpleContext(NewBaseContext(NewBaseContextOpts{
 | |
| 				View:       view,
 | |
| 				WindowName: "commits",
 | |
| 				Key:        REFLOG_COMMITS_CONTEXT_KEY,
 | |
| 				Kind:       types.SIDE_CONTEXT,
 | |
| 				Focusable:  true,
 | |
| 			}), ContextCallbackOpts{
 | |
| 				OnFocus:        onFocus,
 | |
| 				OnFocusLost:    onFocusLost,
 | |
| 				OnRenderToMain: onRenderToMain,
 | |
| 			}),
 | |
| 			list:              viewModel,
 | |
| 			getDisplayStrings: getDisplayStrings,
 | |
| 			c:                 c,
 | |
| 		},
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func (self *ReflogCommitsContext) GetSelectedItemId() string {
 | |
| 	item := self.GetSelected()
 | |
| 	if item == nil {
 | |
| 		return ""
 | |
| 	}
 | |
| 
 | |
| 	return item.ID()
 | |
| }
 | |
| 
 | |
| func (self *ReflogCommitsContext) CanRebase() bool {
 | |
| 	return false
 | |
| }
 | |
| 
 | |
| func (self *ReflogCommitsContext) GetSelectedRef() types.Ref {
 | |
| 	commit := self.GetSelected()
 | |
| 	if commit == nil {
 | |
| 		return nil
 | |
| 	}
 | |
| 	return commit
 | |
| }
 | |
| 
 | |
| func (self *ReflogCommitsContext) GetCommits() []*models.Commit {
 | |
| 	return self.getModel()
 | |
| }
 |