Commit 77391f0

Eric Bower  ·  2026-08-24 09:19:58 -0400 EDT
parent a139e53
chore(tui): check for pgs feature flag
3 files changed,  +16, -7
+11, -6
 1@@ -153,11 +153,12 @@ func (m *FeaturesList) getFeaturesKv() []Kv {
 2 }
 3 
 4 type ServicesList struct {
 5-	ff *db.FeatureFlag
 6+	plusFf *db.FeatureFlag
 7+	pgsFf  *db.FeatureFlag
 8 }
 9 
10-func NewServicesList(ff *db.FeatureFlag) *ServicesList {
11-	return &ServicesList{ff}
12+func NewServicesList(plusFf *db.FeatureFlag, pgsFf *db.FeatureFlag) *ServicesList {
13+	return &ServicesList{plusFf: plusFf, pgsFf: pgsFf}
14 }
15 
16 func (m *ServicesList) HandleEvent(ev vaxis.Event, phase vxfw.EventPhase) (vxfw.Command, error) {
17@@ -180,18 +181,23 @@ func (m *ServicesList) Draw(ctx vxfw.DrawContext) (vxfw.Surface, error) {
18 }
19 
20 func (m *ServicesList) getServiceKv() []Kv {
21-	hasPlus := m.ff != nil
22+	hasPlus := m.plusFf != nil && m.plusFf.IsValid()
23+	hasPgs := m.pgsFf != nil && m.pgsFf.IsValid()
24+	pagesStatus := "pico+"
25+	if hasPlus || hasPgs {
26+		pagesStatus = "active"
27+	}
28 	data := [][]string{
29 		{"name", "status"},
30 		{"prose", "active"},
31 		{"pipe", "active"},
32 		{"pastes", "active"},
33+		{"pages", pagesStatus},
34 	}
35 
36 	if hasPlus {
37 		data = append(
38 			data,
39-			[]string{"pages", "active"},
40 			[]string{"tuns", "active"},
41 			[]string{"irc bouncer", "active"},
42 			[]string{"rss-to-email", "active"},
43@@ -199,7 +205,6 @@ func (m *ServicesList) getServiceKv() []Kv {
44 	} else {
45 		data = append(
46 			data,
47-			[]string{"pages", "pico+"},
48 			[]string{"tuns", "pico+"},
49 			[]string{"irc bouncer", "pico+"},
50 			[]string{"rss-to-email", "pico+"},
+1, -1
1@@ -104,7 +104,7 @@ func (m *MenuPage) Draw(ctx vxfw.DrawContext) (vxfw.Surface, error) {
2 		},
3 	})
4 
5-	services, _ := NewServicesList(m.shared.PlusFeatureFlag).Draw(ctx)
6+	services, _ := NewServicesList(m.shared.PlusFeatureFlag, m.shared.PgsFeatureFlag).Draw(ctx)
7 	features, _ := m.features.Draw(ctx)
8 
9 	leftPane := NewGroupStack([]vxfw.Surface{
+4, -0
 1@@ -30,6 +30,7 @@ type SharedModel struct {
 2 	User               *db.User
 3 	PlusFeatureFlag    *db.FeatureFlag
 4 	BouncerFeatureFlag *db.FeatureFlag
 5+	PgsFeatureFlag     *db.FeatureFlag
 6 	Impersonator       string
 7 	App                *vxfw.App
 8 }
 9@@ -276,6 +277,9 @@ func initData(shrd *SharedModel) error {
10 
11 	bff, _ := FindFeatureFlag(shrd, "bouncer")
12 	shrd.BouncerFeatureFlag = bff
13+
14+	pff, _ := FindFeatureFlag(shrd, "pgs")
15+	shrd.PgsFeatureFlag = pff
16 	return nil
17 }
18