discordo/internal/ui/chat/events.go

39 lines
746 B
Go

package chat
import (
"log/slog"
"github.com/ayn2op/tview"
"github.com/gdamore/tcell/v3"
)
type LogoutEvent struct{ tcell.EventTime }
func NewLogoutEvent() *LogoutEvent {
event := &LogoutEvent{}
event.SetEventNow()
return event
}
type QuitEvent struct{ tcell.EventTime }
func NewQuitEvent() *QuitEvent {
event := &QuitEvent{}
event.SetEventNow()
return event
}
func (v *View) closeState() tcell.Event {
if err := v.CloseState(); err != nil {
slog.Error("failed to close the session", "err", err)
return tcell.NewEventError(err)
}
return nil
}
func (v *View) logout() tview.Command {
return tview.BatchCommand{
tview.EventCommand(v.closeState),
tview.EventCommand(func() tcell.Event { return NewLogoutEvent() }),
}
}