forms.go 888 B

12345678910111213141516171819202122232425262728293031323334353637
  1. package ui
  2. import (
  3. "github.com/gdamore/tcell/v2"
  4. "github.com/rivo/tview"
  5. )
  6. func newBaseLoginForm() *tview.Form {
  7. f := tview.NewForm()
  8. f.
  9. SetButtonsAlign(tview.AlignCenter).
  10. SetButtonBackgroundColor(tcell.GetColor("#5865F2")).
  11. SetBorder(true).
  12. SetBorderPadding(0, 0, 1, 0)
  13. return f
  14. }
  15. // NewLoginForm creates and returns a new login form.
  16. func NewLoginForm(onLoginFormLoginButtonSelected func()) *tview.Form {
  17. f := newBaseLoginForm()
  18. f.
  19. AddInputField("Email", "", 0, nil, nil).
  20. AddPasswordField("Password", "", 0, 0, nil).
  21. AddButton("Login", onLoginFormLoginButtonSelected)
  22. return f
  23. }
  24. // NewMfaLoginForm creates and returns a new MFA login form.
  25. func NewMfaLoginForm(onMfaLoginFormLoginButtonSelected func()) *tview.Form {
  26. f := newBaseLoginForm().
  27. AddPasswordField("Code", "", 0, 0, nil).
  28. AddButton("Login", onMfaLoginFormLoginButtonSelected)
  29. return f
  30. }