misc.go 895 B

12345678910111213141516171819202122232425262728293031323334353637383940
  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. // NewLoginWidget creates and returns a new login widget.
  19. func NewLoginWidget(onLoginFormLoginButtonSelected func(), mfa bool) *tview.Form {
  20. w := tview.NewForm()
  21. w.
  22. AddButton("Login", onLoginFormLoginButtonSelected).
  23. SetButtonsAlign(tview.AlignCenter).
  24. SetBorder(true).
  25. SetBorderPadding(0, 0, 1, 0)
  26. if mfa {
  27. w.AddPasswordField("Code", "", 0, 0, nil)
  28. } else {
  29. w.
  30. AddInputField("Email", "", 0, nil, nil).
  31. AddPasswordField("Password", "", 0, 0, nil)
  32. }
  33. return w
  34. }