summaryrefslogtreecommitdiffstats
path: root/pkg
diff options
context:
space:
mode:
authorJesse Duffield <jessedduffield@gmail.com>2022-03-24 09:25:51 +1100
committerJesse Duffield <jessedduffield@gmail.com>2022-03-24 09:45:27 +1100
commitf113ff21bff22bc9e3dc683a4f52822233b76b95 (patch)
tree44a9e0805391296d460333ef415cc210f89140ca /pkg
parent12ecd665c8f69e45e00629b05c2b3af72f3e3b51 (diff)
add confirmation before performing undo or redo action
Diffstat (limited to 'pkg')
-rw-r--r--pkg/gui/controllers/undo_controller.go60
-rw-r--r--pkg/i18n/english.go5
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",