misc.go 966 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. package ui
  2. import "github.com/rivo/tview"
  3. // NewMainFlex creates and returns a new main flex.
  4. func NewMainFlex(
  5. treeV *tview.TreeView,
  6. textV *tview.TextView,
  7. i *tview.InputField,
  8. ) *tview.Flex {
  9. rf := tview.NewFlex().
  10. SetDirection(tview.FlexRow).
  11. AddItem(textV, 0, 1, false).
  12. AddItem(i, 3, 1, false)
  13. mf := tview.NewFlex().
  14. AddItem(treeV, 0, 1, false).
  15. AddItem(rf, 0, 4, false)
  16. return mf
  17. }
  18. func newBaseLoginForm() *tview.Form {
  19. f := tview.NewForm()
  20. f.
  21. SetButtonsAlign(tview.AlignCenter).
  22. SetBorder(true).
  23. SetBorderPadding(0, 0, 1, 0)
  24. return f
  25. }
  26. // NewLoginForm creates and returns a new login form.
  27. func NewLoginForm(onLoginFormLoginButtonSelected func(), mfa bool) *tview.Form {
  28. f := newBaseLoginForm()
  29. f.AddButton("Login", onLoginFormLoginButtonSelected)
  30. if mfa {
  31. f.AddPasswordField("Code", "", 0, 0, nil)
  32. } else {
  33. f.
  34. AddInputField("Email", "", 0, nil, nil).
  35. AddPasswordField("Password", "", 0, 0, nil)
  36. }
  37. return f
  38. }