Bind original message when typing a reply (#354)

Co-authored-by: Ayyan <119342035+ayn2op@users.noreply.github.com>
This commit is contained in:
cyberme0w 2024-03-04 15:43:10 +00:00 • committed by GitHub
parent 250d8eb924
commit 85c9943386
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 7 additions and 3 deletions

View file

@ -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()
}

View file

@ -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)
}