package chat import ( "context" "log/slog" "github.com/ayn2op/arikawa/v3/discord" "github.com/ayn2op/tview" ) func (m *Model) openState() tview.Cmd { return func() tview.Msg { if err := m.state.Open(context.Background()); err != nil { slog.Error("failed to open chat state", "err", err) return nil } return nil } } func (m *Model) closeState() tview.Cmd { if m.state == nil { return nil } return func() tview.Msg { if err := m.state.Close(); err != nil { slog.Error("failed to close the session", "err", err) } return nil } } func (m *Model) listen() tview.Cmd { return func() tview.Msg { return <-m.events } } type channelLoadedMsg struct { Channel discord.Channel Messages []discord.Message } type olderMessagesLoadedMsg struct { ChannelID discord.ChannelID Older []discord.Message } type deleteMessageMsg discord.Message type LogoutMsg struct{} func (m *Model) logout() tview.Cmd { return func() tview.Msg { return LogoutMsg{} } } type QuitMsg struct{} type FocusedMsg struct{ Model tview.Model } func focused(model tview.Model) tview.Cmd { return func() tview.Msg { return FocusedMsg{model} } }