fix: Reply fallback sometimes being stripped incorrectly

This commit is contained in:
Sorunome 2020-12-27 16:47:03 +01:00
parent 4a2a472d6c
commit e9ec6993df
No known key found for this signature in database
GPG Key ID: B19471D07FC9BE9C
3 changed files with 8 additions and 3 deletions

View File

@ -30,7 +30,10 @@ class HtmlMessage extends StatelessWidget {
// We do *not* do this in an AST and just with simple regex here, as riot-web tends to create // We do *not* do this in an AST and just with simple regex here, as riot-web tends to create
// miss-matching tags, and this way we actually correctly identify what we want to strip and, well, // miss-matching tags, and this way we actually correctly identify what we want to strip and, well,
// strip it. // strip it.
final renderHtml = html.replaceAll(RegExp('<mx-reply>.*<\/mx-reply>'), ''); final renderHtml = html.replaceAll(
RegExp('<mx-reply>.*<\/mx-reply>',
caseSensitive: false, multiLine: false, dotAll: true),
'');
// there is no need to pre-validate the html, as we validate it while rendering // there is no need to pre-validate the html, as we validate it while rendering

View File

@ -95,7 +95,7 @@ class MessageContent extends StatelessWidget {
if (AppConfig.renderHtml && if (AppConfig.renderHtml &&
!event.redacted && !event.redacted &&
event.isRichMessage) { event.isRichMessage) {
String html = event.content['formatted_body']; var html = event.formattedText;
if (event.messageType == MessageTypes.Emote) { if (event.messageType == MessageTypes.Emote) {
html = '* $html'; html = '* $html';
} }

View File

@ -34,16 +34,18 @@ class ReplyContent extends StatelessWidget {
if (displayEvent.messageType == MessageTypes.Emote) { if (displayEvent.messageType == MessageTypes.Emote) {
html = '* $html'; html = '* $html';
} }
final fontSize = DefaultTextStyle.of(context).style.fontSize;
replyBody = HtmlMessage( replyBody = HtmlMessage(
html: html, html: html,
defaultTextStyle: TextStyle( defaultTextStyle: TextStyle(
color: lightText color: lightText
? Colors.white ? Colors.white
: Theme.of(context).textTheme.bodyText2.color, : Theme.of(context).textTheme.bodyText2.color,
fontSize: DefaultTextStyle.of(context).style.fontSize, fontSize: fontSize,
), ),
maxLines: 1, maxLines: 1,
room: displayEvent.room, room: displayEvent.room,
emoteSize: fontSize * 1.5,
); );
} else { } else {
replyBody = Text( replyBody = Text(