events.go 724 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package chat
  2. import (
  3. "log/slog"
  4. "github.com/ayn2op/tview"
  5. "github.com/gdamore/tcell/v3"
  6. )
  7. type LogoutEvent struct{ tcell.EventTime }
  8. func (m *Model) logout() tview.Command {
  9. return func() tview.Event {
  10. return &LogoutEvent{}
  11. }
  12. }
  13. type QuitEvent struct{ tcell.EventTime }
  14. func (m *Model) closeState() tview.Command {
  15. return func() tview.Event {
  16. if m.state != nil {
  17. if err := m.state.Close(); err != nil {
  18. slog.Error("failed to close the session", "err", err)
  19. return tcell.NewEventError(err)
  20. }
  21. }
  22. return nil
  23. }
  24. }
  25. type closeLayerEvent struct {
  26. tcell.EventTime
  27. name string
  28. }
  29. func closeLayer(name string) tview.Command {
  30. return func() tview.Event {
  31. return &closeLayerEvent{name: name}
  32. }
  33. }