1
0
mirror of https://github.com/jesseduffield/lazygit.git synced 2025-07-30 03:23:08 +03:00

Implement a sort order menu for remote branches

This commit is contained in:
Alex March
2023-12-20 15:38:05 +09:00
parent 66b608b2f9
commit 3fe491fcb2
17 changed files with 100 additions and 13 deletions

View File

@ -119,6 +119,37 @@ func (self *RefsHelper) ResetToRef(ref string, strength string, envVars []string
return nil
}
func (self *RefsHelper) CreateSortOrderMenu(onSelected func(sortOrder string) error) error {
type sortOrderWithKey struct {
key types.Key
label string
sortKey string
sortOrder string
}
sortKeys := []sortOrderWithKey{
{label: self.c.Tr.SortAlphabetical, sortKey: "refname", sortOrder: "alphabetical", key: 'a'},
{label: self.c.Tr.SortByDate, sortKey: "-committerdate", sortOrder: "date", key: 'd'},
}
menuItems := lo.Map(sortKeys, func(row sortOrderWithKey, _ int) *types.MenuItem {
return &types.MenuItem{
LabelColumns: []string{
row.label,
style.FgYellow.Sprintf("--sort=%s", row.sortKey),
},
OnPress: func() error {
return onSelected(row.sortOrder)
},
Key: row.key,
}
})
return self.c.Menu(types.CreateMenuOptions{
Title: self.c.Tr.SortOrder,
Items: menuItems,
})
}
func (self *RefsHelper) CreateGitResetMenu(ref string) error {
type strengthWithKey struct {
strength string