1
0
mirror of https://github.com/jesseduffield/lazygit.git synced 2025-06-23 00:39:13 +02:00

refactor rebase menu panel

This commit is contained in:
Jesse Duffield
2020-02-14 23:29:41 +11:00
parent d929b84786
commit eb9134685a

View File

@ -7,33 +7,21 @@ import (
"github.com/jesseduffield/gocui" "github.com/jesseduffield/gocui"
) )
type option struct {
value string
}
// GetDisplayStrings is a function.
func (r *option) GetDisplayStrings(isFocused bool) []string {
return []string{r.value}
}
func (gui *Gui) handleCreateRebaseOptionsMenu(g *gocui.Gui, v *gocui.View) error { func (gui *Gui) handleCreateRebaseOptionsMenu(g *gocui.Gui, v *gocui.View) error {
options := []*option{ options := []string{"continue", "abort"}
{value: "continue"},
{value: "abort"},
}
if gui.State.WorkingTreeState == "rebasing" { if gui.State.WorkingTreeState == "rebasing" {
options = append(options, &option{value: "skip"}) options = append(options, "skip")
} }
options = append(options, &option{value: "cancel"}) menuItems := make([]*menuItem, len(options))
for i, option := range options {
handleMenuPress := func(index int) error { menuItems[i] = &menuItem{
command := options[index].value displayString: option,
if command == "cancel" { onPress: func() error {
return nil return gui.genericMergeCommand(option)
},
} }
return gui.genericMergeCommand(command)
} }
var title string var title string
@ -43,7 +31,7 @@ func (gui *Gui) handleCreateRebaseOptionsMenu(g *gocui.Gui, v *gocui.View) error
title = gui.Tr.SLocalize("RebaseOptionsTitle") title = gui.Tr.SLocalize("RebaseOptionsTitle")
} }
return gui.createMenu(title, options, len(options), handleMenuPress) return gui.createMenuNew(title, menuItems, createMenuOptions{showCancel: true})
} }
func (gui *Gui) genericMergeCommand(command string) error { func (gui *Gui) genericMergeCommand(command string) error {