summaryrefslogtreecommitdiffstats
path: root/pkg/gui/modes.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/gui/modes.go')
-rw-r--r--pkg/gui/modes.go47
1 files changed, 47 insertions, 0 deletions
diff --git a/pkg/gui/modes.go b/pkg/gui/modes.go
new file mode 100644
index 000000000..f53a64d13
--- /dev/null
+++ b/pkg/gui/modes.go
@@ -0,0 +1,47 @@
+package gui
+
+import (
+ "fmt"
+
+ "github.com/fatih/color"
+ "github.com/jesseduffield/lazygit/pkg/utils"
+)
+
+type modeStatus struct {
+ isActive func() bool
+ description func() string
+ onReset func() error
+}
+
+func (gui *Gui) modeStatuses() []modeStatus {
+ return []modeStatus{
+ {
+ isActive: gui.State.Modes.Diffing.Active,
+ description: func() string {
+ return utils.ColoredString(fmt.Sprintf("%s %s %s", gui.Tr.SLocalize("showingGitDiff"), "git diff "+gui.diffStr(), utils.ColoredString(gui.Tr.SLocalize("(reset)"), color.Underline)), color.FgMagenta)
+ },
+ onReset: gui.exitDiffMode,
+ },
+ {
+ isActive: gui.State.Modes.Filtering.Active,
+ description: func() string {
+ return utils.ColoredString(fmt.Sprintf("%s '%s' %s", gui.Tr.SLocalize("filteringBy"), gui.State.Modes.Filtering.Path, utils.ColoredString(gui.Tr.SLocalize("(reset)"), color.Underline)), color.FgRed, color.Bold)
+ },
+ onReset: gui.exitFilterMode,
+ },
+ {
+ isActive: gui.GitCommand.PatchManager.Active,
+ description: func() string {
+ return utils.ColoredString(fmt.Sprintf("%s %s", gui.Tr.SLocalize("buildingPatch"), utils.ColoredString(gui.Tr.SLocalize("(reset)"), color.Underline)), color.FgYellow, color.Bold)
+ },
+ onReset: gui.handleResetPatch,
+ },
+ {
+ isActive: gui.State.Modes.CherryPicking.Active,
+ description: func() string {
+ return utils.ColoredString(fmt.Sprintf("%d commits copied", len(gui.State.Modes.CherryPicking.CherryPickedCommits)), color.FgCyan)
+ },
+ onReset: gui.exitCherryPickingMode,
+ },
+ }
+}