diff --git a/message_input.go b/message_input.go index e5eb904..a25d4e8 100644 --- a/message_input.go +++ b/message_input.go @@ -1,6 +1,7 @@ package main import ( + "github.com/gdamore/tcell/v2" "github.com/rivo/tview" ) @@ -13,12 +14,34 @@ func newMessageInput() *MessageInput { InputField: tview.NewInputField(), } + mi.SetDoneFunc(mi.onDone) + mi.SetFieldBackgroundColor(tview.Styles.PrimitiveBackgroundColor) - mi.SetBorder(cfg.Theme.MessageInput.Border) - padding := cfg.Theme.MessageInput.BorderPadding mi.SetBorderPadding(padding[0], padding[1], padding[2], padding[3]) return mi } + +func (mi *MessageInput) onDone(key tcell.Key) { + switch key { + case tcell.KeyEnter: + go mi.sendMessage() + case tcell.KeyEscape: + // Reset the message input. + mi.SetText("") + } +} + +func (mi *MessageInput) sendMessage() error { + text := mi.GetText() + _, err := discordState.SendMessage(guildsTree.selectedChannel.ID, text) + if err != nil { + return err + } + + // Reset the message input. + mi.SetText("") + return nil +}