forms.go 837 B

123456789101112131415161718192021222324252627282930313233
  1. package ui
  2. import (
  3. "github.com/gdamore/tcell/v2"
  4. "github.com/rivo/tview"
  5. )
  6. func NewLoginForm(app *tview.Application, via string, onLoginFormLoginButtonSelected func()) (loginForm *tview.Form) {
  7. loginForm = tview.NewForm().
  8. AddButton("Login", onLoginFormLoginButtonSelected).
  9. AddButton("Quit", onLoginFormQuitButtonSelected(app)).
  10. SetButtonsAlign(tview.AlignCenter)
  11. loginForm.
  12. SetButtonBackgroundColor(tcell.GetColor("#5865F2")).
  13. SetBorder(true).
  14. SetBorderPadding(0, 0, 1, 1)
  15. if via == "token" {
  16. loginForm.AddPasswordField("Token", "", 0, 0, nil)
  17. } else if via == "emailpassword" {
  18. loginForm.
  19. AddInputField("Email", "", 0, nil, nil).
  20. AddPasswordField("Password", "", 0, 0, nil)
  21. }
  22. return loginForm
  23. }
  24. func onLoginFormQuitButtonSelected(app *tview.Application) func() {
  25. return func() {
  26. app.Stop()
  27. }
  28. }