Skip to content

Commit 54f2de4

Browse files
Add confirmation for nuking the working tree
1 parent 228d442 commit 54f2de4

File tree

2 files changed

+20
-11
lines changed

2 files changed

+20
-11
lines changed

pkg/gui/controllers/workspace_reset_controller.go

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -31,19 +31,26 @@ func (self *FilesController) createResetMenu() error {
3131
red.Sprint(nukeStr),
3232
},
3333
OnPress: func() error {
34-
self.c.LogAction(self.c.Tr.Actions.NukeWorkingTree)
35-
if err := self.c.Git().WorkingTree.ResetAndClean(); err != nil {
36-
return err
37-
}
34+
return self.c.ConfirmIf(helpers.IsWorkingTreeDirty(self.c.Model().Files),
35+
types.ConfirmOpts{
36+
Title: self.c.Tr.Actions.NukeWorkingTree,
37+
Prompt: self.c.Tr.NukeTreeConfirmation,
38+
HandleConfirm: func() error {
39+
self.c.LogAction(self.c.Tr.Actions.NukeWorkingTree)
40+
if err := self.c.Git().WorkingTree.ResetAndClean(); err != nil {
41+
return err
42+
}
3843

39-
if self.c.UserConfig().Gui.AnimateExplosion {
40-
self.animateExplosion()
41-
}
44+
if self.c.UserConfig().Gui.AnimateExplosion {
45+
self.animateExplosion()
46+
}
4247

43-
self.c.Refresh(
44-
types.RefreshOptions{Mode: types.ASYNC, Scope: []types.RefreshableView{types.FILES}},
45-
)
46-
return nil
48+
self.c.Refresh(
49+
types.RefreshOptions{Mode: types.ASYNC, Scope: []types.RefreshableView{types.FILES}},
50+
)
51+
return nil
52+
},
53+
})
4754
},
4855
Key: 'x',
4956
Tooltip: self.c.Tr.NukeDescription,

pkg/i18n/english.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -516,6 +516,7 @@ type TranslationSet struct {
516516
NewRemote string
517517
NewRemoteName string
518518
NewRemoteUrl string
519+
NukeTreeConfirmation string
519520
ViewBranches string
520521
EditRemoteName string
521522
EditRemoteUrl string
@@ -1569,6 +1570,7 @@ func EnglishTranslationSet() *TranslationSet {
15691570
NewRemote: `New remote`,
15701571
NewRemoteName: `New remote name:`,
15711572
NewRemoteUrl: `New remote url:`,
1573+
NukeTreeConfirmation: "Are you sure you want to nuke the working tree? This will discard all changes in the worktree (staged, unstaged and untracked), which is not undoable.",
15721574
ViewBranches: "View branches",
15731575
EditRemoteName: `Enter updated remote name for {{.remoteName}}:`,
15741576
EditRemoteUrl: `Enter updated remote url for {{.remoteName}}:`,

0 commit comments

Comments
 (0)