| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- package main
- import (
- "github.com/gdamore/tcell/v2"
- "github.com/rivo/tview"
- )
- type MessageInput struct {
- *tview.InputField
- }
- func newMessageInput() *MessageInput {
- mi := &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
- }
|