model.go 631 B

1234567891011121314151617181920212223242526272829303132333435
  1. package token
  2. import (
  3. "github.com/ayn2op/tview"
  4. "github.com/ayn2op/tview/tabs"
  5. )
  6. type Model struct {
  7. *tview.Form
  8. }
  9. func NewModel() *Model {
  10. form := tview.NewForm().
  11. AddPasswordField("Token", "", 0, 0, nil).
  12. AddButton("Login")
  13. return &Model{Form: form}
  14. }
  15. var _ tabs.Tab = (*Model)(nil)
  16. func (m *Model) Label() string {
  17. return "Token"
  18. }
  19. func (m *Model) HandleEvent(event tview.Event) tview.Command {
  20. switch event.(type) {
  21. case *tview.FormSubmitEvent:
  22. token := m.GetFormItem(0).(*tview.InputField).GetText()
  23. if token == "" {
  24. return nil
  25. }
  26. return tokenCommand(token)
  27. }
  28. return m.Form.HandleEvent(event)
  29. }