events.go 693 B

123456789101112131415161718192021222324252627282930313233343536373839
  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 (v *Model) logout() tview.Command {
  9. return func() tcell.Event {
  10. return &LogoutEvent{}
  11. }
  12. }
  13. type QuitEvent struct{ tcell.EventTime }
  14. func (v *Model) closeState() tview.Command {
  15. return func() tcell.Event {
  16. if err := v.CloseState(); err != nil {
  17. slog.Error("failed to close the session", "err", err)
  18. return tcell.NewEventError(err)
  19. }
  20. return nil
  21. }
  22. }
  23. type closeLayerEvent struct {
  24. tcell.EventTime
  25. name string
  26. }
  27. func closeLayer(name string) tview.Command {
  28. return func() tcell.Event {
  29. return &closeLayerEvent{name: name}
  30. }
  31. }