- commit
- 6246268
- parent
- 8b58c73
- author
- Eric Bower
- date
- 2025-03-21 13:53:24 -0400 EDT
fix(tui): dont fetch user info when creating a page fix(tui): dont panic
3 files changed,
+16,
-15
+1,
-2
1@@ -31,8 +31,7 @@ func createTui(shrd *tui.SharedModel) pssh.SSHServerMiddleware {
2 opts := vaxis.Options{
3 WithConsole: vty,
4 }
5- tui.NewTui(opts, shrd)
6- return nil
7+ return tui.NewTui(opts, shrd)
8 }
9 }
10 }
+4,
-4
1@@ -109,10 +109,6 @@ func NewTunsPage(shrd *SharedModel) *TunsPage {
2 m.leftPane = list.Dynamic{DrawCursor: true, Builder: m.getLeftWidget}
3 m.logList = list.Dynamic{DrawCursor: true, Builder: m.getLogWidget}
4 m.eventLogList = list.Dynamic{DrawCursor: true, Builder: m.getEventLogWidget}
5- ff, _ := shrd.Dbpool.FindFeatureForUser(m.shared.User.ID, "admin")
6- if ff != nil {
7- m.isAdmin = true
8- }
9 return m
10 }
11
12@@ -225,6 +221,10 @@ func (m *TunsPage) HandleEvent(ev vaxis.Event, ph vxfw.EventPhase) (vxfw.Command
13 switch msg := ev.(type) {
14 case PageIn:
15 m.loading = true
16+ ff, _ := m.shared.Dbpool.FindFeatureForUser(m.shared.User.ID, "admin")
17+ if ff != nil {
18+ m.isAdmin = true
19+ }
20 go m.fetchTuns()
21 go func() {
22 _ = m.connectToLogs()
+11,
-9
1@@ -250,10 +250,10 @@ func (m *FooterWdgt) Draw(ctx vxfw.DrawContext) (vxfw.Surface, error) {
2 return wdgt.Draw(ctx)
3 }
4
5-func initData(shrd *SharedModel) {
6+func initData(shrd *SharedModel) error {
7 user, err := FindUser(shrd)
8 if err != nil {
9- panic(err)
10+ return err
11 }
12 shrd.User = user
13
14@@ -262,6 +262,7 @@ func initData(shrd *SharedModel) {
15
16 bff, _ := FindFeatureFlag(shrd, "bouncer")
17 shrd.BouncerFeatureFlag = bff
18+ return nil
19 }
20
21 func FindUser(shrd *SharedModel) (*db.User, error) {
22@@ -318,11 +319,15 @@ func FindFeatureFlag(shrd *SharedModel, name string) (*db.FeatureFlag, error) {
23 return ff, nil
24 }
25
26-func NewTui(opts vaxis.Options, shrd *SharedModel) {
27- initData(shrd)
28+func NewTui(opts vaxis.Options, shrd *SharedModel) error {
29+ err := initData(shrd)
30+ if err != nil {
31+ return err
32+ }
33+
34 app, err := vxfw.NewApp(opts)
35 if err != nil {
36- panic(err)
37+ return err
38 }
39
40 shrd.App = app
41@@ -344,8 +349,5 @@ func NewTui(opts vaxis.Options, shrd *SharedModel) {
42 pages: pages,
43 }
44
45- err = app.Run(root)
46- if err != nil {
47- panic(err)
48- }
49+ return app.Run(root)
50 }