a5cc7662567d0d60a27322a16ef270ecacd63a01

Author
Toby Padilla <toby@charm.sh>
Committer
Toby Padilla <toby@charm.sh>
Date

Message

Fix repo menu order

Diff

 1diff --git a/internal/tui/commands.go b/internal/tui/commands.go
 2index 2e6ef22a9e5be73a655d870b55d46398b618d089..5b6f32605b4dc6ae3e65298fb49e71f26c1b16b6 100644
 3--- a/internal/tui/commands.go
 4+++ b/internal/tui/commands.go
 5@@ -62,29 +62,36 @@ func (b *Bubble) setupCmd() tea.Msg {
 6 
 7 func (b *Bubble) menuEntriesFromSource() ([]MenuEntry, error) {
 8 	mes := make([]MenuEntry, 0)
 9-	rs := b.config.Source.AllRepos()
10-OUTER:
11-	for _, r := range rs {
12-		acc := b.config.AuthRepo(r.Name, b.session.PublicKey())
13-		if acc == gm.NoAccess && r.Name != "config" {
14+	for _, cr := range b.config.Repos {
15+		acc := b.config.AuthRepo(cr.Repo, b.session.PublicKey())
16+		if acc == gm.NoAccess && cr.Repo != "config" {
17 			continue
18 		}
19-		for _, cr := range b.config.Repos {
20-			if r.Name == cr.Repo {
21-				me, err := b.newMenuEntry(cr.Name, cr.Repo)
22-				if err != nil {
23-					return nil, err
24-				}
25-				mes = append(mes, me)
26-				continue OUTER
27-			}
28-		}
29-		me, err := b.newMenuEntry(r.Name, r.Name)
30+		me, err := b.newMenuEntry(cr.Name, cr.Repo)
31 		if err != nil {
32 			return nil, err
33 		}
34 		mes = append(mes, me)
35 	}
36+	for _, r := range b.config.Source.AllRepos() {
37+		var found bool
38+		for _, me := range mes {
39+			if me.Repo == r.Name {
40+				found = true
41+			}
42+		}
43+		if !found {
44+			acc := b.config.AuthRepo(r.Name, b.session.PublicKey())
45+			if acc == gm.NoAccess {
46+				continue
47+			}
48+			me, err := b.newMenuEntry(r.Name, r.Name)
49+			if err != nil {
50+				return nil, err
51+			}
52+			mes = append(mes, me)
53+		}
54+	}
55 	return mes, nil
56 }
57