Bladeren bron

Bind original message when typing a reply (#354)

Co-authored-by: Ayyan <119342035+ayn2op@users.noreply.github.com>
cyberme0w 2 jaren geleden
bovenliggende
commit
85c9943386
2 gewijzigde bestanden met toevoegingen van 7 en 3 verwijderingen
  1. 6 3
      cmd/message_input.go
  2. 1 0
      cmd/messages_text.go

+ 6 - 3
cmd/message_input.go

@@ -17,11 +17,13 @@ import (
 
 type MessageInput struct {
 	*tview.TextArea
+	replyMessageIdx int
 }
 
 func newMessageInput() *MessageInput {
 	mi := &MessageInput{
 		TextArea: tview.NewTextArea(),
+		replyMessageIdx: -1,
 	}
 
 	mi.SetTextStyle(tcell.StyleDefault.Background(tcell.GetColor(cfg.Theme.BackgroundColor)))
@@ -62,6 +64,7 @@ func (mi *MessageInput) onInputCapture(event *tcell.EventKey) *tcell.EventKey {
 		mainFlex.messageInput.launchEditorAction()
 		return nil
 	case cfg.Keys.Cancel:
+		mi.replyMessageIdx = -1
 		mi.reset()
 		return nil
 	}
@@ -79,7 +82,7 @@ func (mi *MessageInput) sendAction() {
 		return
 	}
 
-	if mainFlex.messagesText.selectedMessage != -1 {
+	if mi.replyMessageIdx != -1 {
 		ms, err := discordState.Cabinet.Messages(mainFlex.guildsTree.selectedChannelID)
 		if err != nil {
 			log.Println(err)
@@ -88,7 +91,7 @@ func (mi *MessageInput) sendAction() {
 
 		data := api.SendMessageData{
 			Content:         text,
-			Reference:       &discord.MessageReference{MessageID: ms[mainFlex.messagesText.selectedMessage].ID},
+			Reference:       &discord.MessageReference{MessageID: ms[mi.replyMessageIdx].ID},
 			AllowedMentions: &api.AllowedMentions{RepliedUser: option.False},
 		}
 
@@ -101,7 +104,7 @@ func (mi *MessageInput) sendAction() {
 		go discordState.SendMessage(mainFlex.guildsTree.selectedChannelID, text)
 	}
 
-	mainFlex.messagesText.selectedMessage = -1
+	mi.replyMessageIdx = -1
 	mainFlex.messagesText.Highlight()
 	mi.reset()
 }

+ 1 - 0
cmd/messages_text.go

@@ -187,6 +187,7 @@ func (mt *MessagesText) replyAction(mention bool) {
 
 	title += ms[mt.selectedMessage].Author.Tag()
 	mainFlex.messageInput.SetTitle(title)
+	mainFlex.messageInput.replyMessageIdx = mt.selectedMessage
 
 	app.SetFocus(mainFlex.messageInput)
 }