diff options
Diffstat (limited to 'ui/messages/parser.go')
-rw-r--r-- | ui/messages/parser.go | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/ui/messages/parser.go b/ui/messages/parser.go index 7b76a69..097c9d0 100644 --- a/ui/messages/parser.go +++ b/ui/messages/parser.go @@ -37,13 +37,18 @@ func ParseEvent(matrix ifc.MatrixContainer, room *rooms.Room, evt *mautrix.Event return nil } if len(evt.Content.GetReplyTo()) > 0 { - roomID := evt.Content.RelatesTo.InReplyTo.RoomID - if len(roomID) == 0 { - roomID = room.ID + replyToRoom := room + if len(evt.Content.RelatesTo.InReplyTo.RoomID) > 0 { + replyToRoom = matrix.GetRoom(evt.Content.RelatesTo.InReplyTo.RoomID) } - replyToEvt, _ := matrix.GetEvent(room, evt.Content.GetReplyTo()) + replyToEvt, _ := matrix.GetEvent(replyToRoom, evt.Content.GetReplyTo()) if replyToEvt != nil { - // TODO add reply header + replyToMsg := directParseEvent(matrix, replyToRoom, replyToEvt) + if replyToMsg != nil { + msg.SetReplyTo(replyToMsg) + } else { + // TODO add unrenderable reply header + } } else { // TODO add unknown reply header } |