From 62a0c895b47ad7ee0c072a053942af41d214f772 Mon Sep 17 00:00:00 2001 From: Aaron Hoffman Date: Mon, 29 Jan 2024 22:44:21 -0600 Subject: 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 --- pkg/gui/controllers/commits_files_controller.go | 63 ++++++++++++------------- 1 file 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 { -- cgit v1.2.3