From 7dff2b2433379e81f9c4b2910f11aa28d8c2f40a Mon Sep 17 00:00:00 2001 From: ayn2op Date: Mon, 2 Jan 2023 14:04:36 +0530 Subject: [PATCH] Support for sending message --- message_input.go | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) 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 +}