summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAaron Hoffman <kd0sgh@gmail.com>2024-01-29 22:44:21 -0600
committerAaron Hoffman <kd0sgh@gmail.com>2024-02-13 09:10:15 -0600
commit62a0c895b47ad7ee0c072a053942af41d214f772 (patch)
treecbdf11af8d25bfb604d0ba7a7f3ed76ca35c4df5
parent15d5261933912f0665ca1920f5131dce9cc2dbb3 (diff)
Cleanup
The waiting status shouldn't happen until after the user has responded to the popup. Since we're not giving a standalone prompt about clearing the patch, all of the business in `discard` doesn't need to be in a function any more
-rw-r--r--pkg/gui/controllers/commits_files_controller.go63
1 files changed, 29 insertions, 34 deletions
diff --git a/pkg/gui/controllers/commits_files_controller.go b/pkg/gui/controllers/commits_files_controller.go
index 326a8a6d3..2a5b8139a 100644
--- a/pkg/gui/controllers/commits_files_controller.go
+++ b/pkg/gui/controllers/commits_files_controller.go
@@ -186,46 +186,41 @@ func (self *CommitFilesController) discard(selectedNodes []*filetree.CommitFileN
return err
}
- removeFileRange := func() error {
- return self.c.WithWaitingStatus(self.c.Tr.RebasingStatus, func(gocui.Task) error {
- selectedNodes = normalisedSelectedCommitFileNodes(selectedNodes)
-
- return self.c.Confirm(types.ConfirmOpts{
- Title: self.c.Tr.DiscardFileChangesTitle,
- Prompt: self.c.Tr.DiscardFileChangesPrompt,
- HandleConfirm: func() error {
- var filePaths []string
-
- // Reset the current patch if there is one.
- if self.c.Git().Patch.PatchBuilder.Active() {
- self.c.Git().Patch.PatchBuilder.Reset()
- if err := self.c.Refresh(types.RefreshOptions{Mode: types.BLOCK_UI}); err != nil {
- return err
- }
+ return self.c.Confirm(types.ConfirmOpts{
+ Title: self.c.Tr.DiscardFileChangesTitle,
+ Prompt: self.c.Tr.DiscardFileChangesPrompt,
+ HandleConfirm: func() error {
+ return self.c.WithWaitingStatus(self.c.Tr.RebasingStatus, func(gocui.Task) error {
+ var filePaths []string
+ selectedNodes = normalisedSelectedCommitFileNodes(selectedNodes)
+
+ // Reset the current patch if there is one.
+ if self.c.Git().Patch.PatchBuilder.Active() {
+ self.c.Git().Patch.PatchBuilder.Reset()
+ if err := self.c.Refresh(types.RefreshOptions{Mode: types.BLOCK_UI}); err != nil {
+ return err
}
+ }
- for _, node := range selectedNodes {
- err := node.ForEachFile(func(file *models.CommitFile) error {
- filePaths = append(filePaths, file.GetPath())
- return nil
- })
- if err != nil {
- return self.c.Error(err)
- }
+ for _, node := range selectedNodes {
+ err := node.ForEachFile(func(file *models.CommitFile) error {
+ filePaths = append(filePaths, file.GetPath())
+ return nil
+ })
+ if err != nil {
+ return self.c.Error(err)
}
+ }
- err := self.c.Git().Rebase.DiscardOldFileChanges(self.c.Model().Commits, self.c.Contexts().LocalCommits.GetSelectedLineIdx(), filePaths)
- if err := self.c.Helpers().MergeAndRebase.CheckMergeOrRebase(err); err != nil {
- return err
- }
+ err := self.c.Git().Rebase.DiscardOldFileChanges(self.c.Model().Commits, self.c.Contexts().LocalCommits.GetSelectedLineIdx(), filePaths)
+ if err := self.c.Helpers().MergeAndRebase.CheckMergeOrRebase(err); err != nil {
+ return err
+ }
- return self.c.Refresh(types.RefreshOptions{Mode: types.BLOCK_UI})
- },
+ return self.c.Refresh(types.RefreshOptions{Mode: types.BLOCK_UI})
})
- })
- }
-
- return removeFileRange()
+ },
+ })
}
func (self *CommitFilesController) open(node *filetree.CommitFileNode) error {