Browse Source

Support for sending message

ayn2op 3 years ago
parent
commit
7dff2b2433
1 changed files with 25 additions and 2 deletions
  1. 25 2
      message_input.go

+ 25 - 2
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.SetFieldBackgroundColor(tview.Styles.PrimitiveBackgroundColor)
+	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
+}