mirror of
https://github.com/jesseduffield/lazygit.git
synced 2025-08-06 22:33:07 +02:00
refactor controllers
This commit is contained in:
55
pkg/gui/controllers/helpers/working_tree_helper.go
Normal file
55
pkg/gui/controllers/helpers/working_tree_helper.go
Normal file
@ -0,0 +1,55 @@
|
||||
package helpers
|
||||
|
||||
import (
|
||||
"github.com/jesseduffield/lazygit/pkg/commands/models"
|
||||
"github.com/jesseduffield/lazygit/pkg/gui/types"
|
||||
)
|
||||
|
||||
type IWorkingTreeHelper interface {
|
||||
AnyStagedFiles() bool
|
||||
AnyTrackedFiles() bool
|
||||
IsWorkingTreeDirty() bool
|
||||
FileForSubmodule(submodule *models.SubmoduleConfig) *models.File
|
||||
}
|
||||
|
||||
type WorkingTreeHelper struct {
|
||||
model *types.Model
|
||||
}
|
||||
|
||||
func NewWorkingTreeHelper(model *types.Model) *WorkingTreeHelper {
|
||||
return &WorkingTreeHelper{
|
||||
model: model,
|
||||
}
|
||||
}
|
||||
|
||||
func (self *WorkingTreeHelper) AnyStagedFiles() bool {
|
||||
for _, file := range self.model.Files {
|
||||
if file.HasStagedChanges {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (self *WorkingTreeHelper) AnyTrackedFiles() bool {
|
||||
for _, file := range self.model.Files {
|
||||
if file.Tracked {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (self *WorkingTreeHelper) IsWorkingTreeDirty() bool {
|
||||
return self.AnyStagedFiles() || self.AnyTrackedFiles()
|
||||
}
|
||||
|
||||
func (self *WorkingTreeHelper) FileForSubmodule(submodule *models.SubmoduleConfig) *models.File {
|
||||
for _, file := range self.model.Files {
|
||||
if file.IsSubmodule([]*models.SubmoduleConfig{submodule}) {
|
||||
return file
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
Reference in New Issue
Block a user