diff --git a/cmd/layout.go b/cmd/layout.go index 12e97e7..ad7bad0 100644 --- a/cmd/layout.go +++ b/cmd/layout.go @@ -42,17 +42,13 @@ func newLayout(cfg *config.Config) *Layout { func (l *Layout) show(token string) error { if token == "" { - loginForm := login.NewForm(l.app, func(token string, err error) { - if err != nil { - slog.Error("failed to login", "err", err) - return - } - + loginForm := login.NewForm(l.app, func(token string) { if err := l.show(token); err != nil { slog.Error("failed to show app", "err", err) return } }) + l.app.SetRoot(loginForm, true) } else { if err := openState(token, l.app, l.cfg); err != nil { diff --git a/internal/login/form.go b/internal/login/form.go index 7bdcc61..1a7d1c7 100644 --- a/internal/login/form.go +++ b/internal/login/form.go @@ -2,6 +2,7 @@ package login import ( "errors" + "log/slog" "github.com/ayn2op/discordo/internal/config" "github.com/diamondburned/arikawa/v3/api" @@ -10,7 +11,7 @@ import ( "github.com/zalando/go-keyring" ) -type DoneFn = func(token string, err error) +type DoneFn = func(token string) type Form struct { *tview.Flex @@ -141,14 +142,11 @@ func (self *Form) login() { go keyring.Set(config.Name, "token", resp.Token) if self.done != nil { - self.done(resp.Token, nil) + self.done(resp.Token) } } func (self *Form) onError(err error) { + slog.Error("failed to login", "err", err) self.errorTextView.SetText(err.Error()) - - if self.done != nil { - self.done("", err) - } }