diff options
author | Jesse Duffield <jessedduffield@gmail.com> | 2022-03-24 09:25:51 +1100 |
---|---|---|
committer | Jesse Duffield <jessedduffield@gmail.com> | 2022-03-24 09:45:27 +1100 |
commit | f113ff21bff22bc9e3dc683a4f52822233b76b95 (patch) | |
tree | 44a9e0805391296d460333ef415cc210f89140ca /pkg | |
parent | 12ecd665c8f69e45e00629b05c2b3af72f3e3b51 (diff) |
add confirmation before performing undo or redo action
Diffstat (limited to 'pkg')
-rw-r--r-- | pkg/gui/controllers/undo_controller.go | 60 | ||||
-rw-r--r-- | pkg/i18n/english.go | 5 |
2 files changed, 48 insertions, 17 deletions
diff --git a/pkg/gui/controllers/undo_controller.go b/pkg/gui/controllers/undo_controller.go index bfd6dc444..ba54f4201 100644 --- a/pkg/gui/controllers/undo_controller.go +++ b/pkg/gui/controllers/undo_controller.go @@ -1,6 +1,8 @@ package controllers import ( + "fmt" + "github.com/jesseduffield/lazygit/pkg/commands/types/enums" "github.com/jesseduffield/lazygit/pkg/gui/types" "github.com/jesseduffield/lazygit/pkg/utils" @@ -83,17 +85,30 @@ func (self *UndoController) reflogUndo() error { switch action.kind { case COMMIT, REBASE: - self.c.LogAction(self.c.Tr.Actions.Undo) - return true, self.hardResetWithAutoStash(action.from, hardResetOptions{ - EnvVars: undoEnvVars, - WaitingStatus: undoingStatus, + return true, self.c.Ask(types.AskOpts{ + Title: self.c.Tr.Actions.Undo, + Prompt: fmt.Sprintf(self.c.Tr.HardResetAutostashPrompt, action.from), + HandleConfirm: func() error { + self.c.LogAction(self.c.Tr.Actions.Undo) + return self.hardResetWithAutoStash(action.from, hardResetOptions{ + EnvVars: undoEnvVars, + WaitingStatus: undoingStatus, + }) + }, }) case CHECKOUT: - self.c.LogAction(self.c.Tr.Actions.Undo) - return true, self.helpers.Refs.CheckoutRef(action.from, types.CheckoutRefOptions{ - EnvVars: undoEnvVars, - WaitingStatus: undoingStatus, + return true, self.c.Ask(types.AskOpts{ + Title: self.c.Tr.Actions.Undo, + Prompt: fmt.Sprintf(self.c.Tr.CheckoutPrompt, action.from), + HandleConfirm: func() error { + self.c.LogAction(self.c.Tr.Actions.Undo) + return self.helpers.Refs.CheckoutRef(action.from, types.CheckoutRefOptions{ + EnvVars: undoEnvVars, + WaitingStatus: undoingStatus, + }) + }, }) + case CURRENT_REBASE: // do nothing } @@ -121,16 +136,29 @@ func (self *UndoController) reflogRedo() error { switch action.kind { case COMMIT, REBASE: - self.c.LogAction(self.c.Tr.Actions.Redo) - return true, self.hardResetWithAutoStash(action.to, hardResetOptions{ - EnvVars: redoEnvVars, - WaitingStatus: redoingStatus, + return true, self.c.Ask(types.AskOpts{ + Title: self.c.Tr.Actions.Redo, + Prompt: fmt.Sprintf(self.c.Tr.HardResetAutostashPrompt, action.to), + HandleConfirm: func() error { + self.c.LogAction(self.c.Tr.Actions.Redo) + return self.hardResetWithAutoStash(action.to, hardResetOptions{ + EnvVars: redoEnvVars, + WaitingStatus: redoingStatus, + }) + }, }) + case CHECKOUT: - self.c.LogAction(self.c.Tr.Actions.Redo) - return true, self.helpers.Refs.CheckoutRef(action.to, types.CheckoutRefOptions{ - EnvVars: redoEnvVars, - WaitingStatus: redoingStatus, + return true, self.c.Ask(types.AskOpts{ + Title: self.c.Tr.Actions.Redo, + Prompt: fmt.Sprintf(self.c.Tr.CheckoutPrompt, action.to), + HandleConfirm: func() error { + self.c.LogAction(self.c.Tr.Actions.Redo) + return self.helpers.Refs.CheckoutRef(action.to, types.CheckoutRefOptions{ + EnvVars: redoEnvVars, + WaitingStatus: redoingStatus, + }) + }, }) case CURRENT_REBASE: // do nothing diff --git a/pkg/i18n/english.go b/pkg/i18n/english.go index c7965e6a9..e72fe7d06 100644 --- a/pkg/i18n/english.go +++ b/pkg/i18n/english.go @@ -456,6 +456,8 @@ type TranslationSet struct { ConfirmRevertCommit string RewordInEditorTitle string RewordInEditorPrompt string + CheckoutPrompt string + HardResetAutostashPrompt string Actions Actions Bisect Bisect } @@ -1031,7 +1033,8 @@ func EnglishTranslationSet() TranslationSet { ConfirmRevertCommit: "Are you sure you want to revert {{.selectedCommit}}?", RewordInEditorTitle: "Reword in editor", RewordInEditorPrompt: "Are you sure you want to reword this commit in your editor?", - + HardResetAutostashPrompt: "Are you sure you want to hard reset to '%s'? An auto-stash will be performed if necessary.", + CheckoutPrompt: "Are you sure you want to checkout '%s'?", Actions: Actions{ // TODO: combine this with the original keybinding descriptions (those are all in lowercase atm) CheckoutCommit: "Checkout commit", |