diff options
Diffstat (limited to 'pkg/gui/controllers/helpers/patch_building_helper.go')
-rw-r--r-- | pkg/gui/controllers/helpers/patch_building_helper.go | 37 |
1 files changed, 33 insertions, 4 deletions
diff --git a/pkg/gui/controllers/helpers/patch_building_helper.go b/pkg/gui/controllers/helpers/patch_building_helper.go index efb8ec671..25ac63a08 100644 --- a/pkg/gui/controllers/helpers/patch_building_helper.go +++ b/pkg/gui/controllers/helpers/patch_building_helper.go @@ -3,6 +3,7 @@ package helpers import ( "github.com/jesseduffield/lazygit/pkg/commands" "github.com/jesseduffield/lazygit/pkg/commands/types/enums" + "github.com/jesseduffield/lazygit/pkg/gui/context" "github.com/jesseduffield/lazygit/pkg/gui/types" ) @@ -11,17 +12,20 @@ type IPatchBuildingHelper interface { } type PatchBuildingHelper struct { - c *types.HelperCommon - git *commands.GitCommand + c *types.HelperCommon + git *commands.GitCommand + contexts *context.ContextTree } func NewPatchBuildingHelper( c *types.HelperCommon, git *commands.GitCommand, + contexts *context.ContextTree, ) *PatchBuildingHelper { return &PatchBuildingHelper{ - c: c, - git: git, + c: c, + git: git, + contexts: contexts, } } @@ -31,3 +35,28 @@ func (self *PatchBuildingHelper) ValidateNormalWorkingTreeState() (bool, error) } return true, nil } + +// takes us from the patch building panel back to the commit files panel +func (self *PatchBuildingHelper) Escape() error { + return self.c.PushContext(self.contexts.CommitFiles) +} + +// kills the custom patch and returns us back to the commit files panel if needed +func (self *PatchBuildingHelper) Reset() error { + self.git.Patch.PatchManager.Reset() + + if self.c.CurrentStaticContext().GetKind() != types.SIDE_CONTEXT { + if err := self.Escape(); err != nil { + return err + } + } + + if err := self.c.Refresh(types.RefreshOptions{ + Scope: []types.RefreshableView{types.COMMIT_FILES}, + }); err != nil { + return err + } + + // refreshing the current context so that the secondary panel is hidden if necessary. + return self.c.PostRefreshUpdate(self.c.CurrentContext()) +} |