38 lines
745 B
Go
38 lines
745 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
|
|
}
|
|
|
|
func (v *Model) logout() tview.Command {
|
|
return tview.EventCommand(func() tcell.Event { return newLogoutEvent() })
|
|
}
|
|
|
|
type QuitEvent struct{ tcell.EventTime }
|
|
|
|
func NewQuitEvent() *QuitEvent {
|
|
event := &QuitEvent{}
|
|
event.SetEventNow()
|
|
return event
|
|
}
|
|
|
|
func (v *Model) closeState() tview.Command {
|
|
return tview.EventCommand(func() tcell.Event {
|
|
if err := v.CloseState(); err != nil {
|
|
slog.Error("failed to close the session", "err", err)
|
|
return tcell.NewEventError(err)
|
|
}
|
|
return nil
|
|
})
|
|
}
|