diff options
Diffstat (limited to 'pkg/gui/information_panel.go')
-rw-r--r-- | pkg/gui/information_panel.go | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/pkg/gui/information_panel.go b/pkg/gui/information_panel.go new file mode 100644 index 000000000..10292026d --- /dev/null +++ b/pkg/gui/information_panel.go @@ -0,0 +1,51 @@ +package gui + +import ( + "fmt" + + "github.com/fatih/color" +) + +func (gui *Gui) informationStr() string { + for _, mode := range gui.modeStatuses() { + if mode.isActive() { + return mode.description() + } + } + + if gui.g.Mouse { + donate := color.New(color.FgMagenta, color.Underline).Sprint(gui.Tr.Donate) + askQuestion := color.New(color.FgYellow, color.Underline).Sprint(gui.Tr.AskQuestion) + return fmt.Sprintf("%s %s %s", donate, askQuestion, gui.Config.GetVersion()) + } else { + return gui.Config.GetVersion() + } +} + +func (gui *Gui) handleInfoClick() error { + if !gui.g.Mouse { + return nil + } + + view := gui.Views.Information + + cx, _ := view.Cursor() + width, _ := view.Size() + + for _, mode := range gui.modeStatuses() { + if mode.isActive() { + if width-cx > len(gui.Tr.ResetInParentheses) { + return nil + } + return mode.reset() + } + } + + // if we're not in an active mode we show the donate button + if cx <= len(gui.Tr.Donate) { + return gui.OSCommand.OpenLink("https://github.com/sponsors/jesseduffield") + } else if cx <= len(gui.Tr.Donate)+1+len(gui.Tr.AskQuestion) { + return gui.OSCommand.OpenLink("https://github.com/jesseduffield/lazygit/discussions") + } + return nil +} |