Add initial support for rendering replies
This commit is contained in:
@ -54,6 +54,7 @@ type UIMessage struct {
|
||||
State event.OutgoingState
|
||||
IsHighlight bool
|
||||
IsService bool
|
||||
Edited bool
|
||||
Source json.RawMessage
|
||||
ReplyTo *UIMessage
|
||||
Renderer MessageRenderer
|
||||
@ -80,6 +81,7 @@ func newUIMessage(evt *event.Event, displayname string, renderer MessageRenderer
|
||||
State: evt.Gomuks.OutgoingState,
|
||||
IsHighlight: false,
|
||||
IsService: false,
|
||||
Edited: len(evt.Gomuks.Edits) > 0,
|
||||
Source: evt.Content.VeryRaw,
|
||||
Renderer: renderer,
|
||||
}
|
||||
@ -231,7 +233,6 @@ func (msg *UIMessage) SetID(id string) {
|
||||
}
|
||||
|
||||
func (msg *UIMessage) SetIsHighlight(isHighlight bool) {
|
||||
// TODO Textmessage cache needs to be cleared
|
||||
msg.IsHighlight = isHighlight
|
||||
}
|
||||
|
||||
|
@ -127,8 +127,8 @@ func ParseMessage(matrix ifc.MatrixContainer, room *rooms.Room, evt *event.Event
|
||||
if len(evt.Content.GetReplyTo()) > 0 {
|
||||
evt.Content.RemoveReplyFallback()
|
||||
}
|
||||
if evt.Content.GetRelatesTo().Type == mautrix.RelReplace && evt.Content.NewContent != nil {
|
||||
evt.Content = *evt.Content.NewContent
|
||||
if len(evt.Gomuks.Edits) > 0 {
|
||||
evt.Content = *evt.Gomuks.Edits[len(evt.Gomuks.Edits)-1].Content.NewContent
|
||||
}
|
||||
switch evt.Content.MsgType {
|
||||
case "m.text", "m.notice", "m.emote":
|
||||
|
@ -29,9 +29,10 @@ import (
|
||||
)
|
||||
|
||||
type TextMessage struct {
|
||||
cache tstring.TString
|
||||
buffer []tstring.TString
|
||||
Text string
|
||||
cache tstring.TString
|
||||
buffer []tstring.TString
|
||||
isHighlight bool
|
||||
Text string
|
||||
}
|
||||
|
||||
// NewTextMessage creates a new UITextMessage object with the provided values and the default state.
|
||||
@ -85,6 +86,9 @@ func (msg *TextMessage) String() string {
|
||||
}
|
||||
|
||||
func (msg *TextMessage) CalculateBuffer(prefs config.UserPreferences, width int, uiMsg *UIMessage) {
|
||||
if uiMsg.IsHighlight != msg.isHighlight {
|
||||
msg.cache = nil
|
||||
}
|
||||
msg.buffer = calculateBufferWithText(prefs, msg.getCache(uiMsg), width, uiMsg)
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user