handle redacted messages more gracefully

This commit is contained in:
Henry Hiles 2026-07-14 23:29:20 +00:00
commit 4c94977b90
Signed by: Henry-Hiles
SSH key fingerprint: SHA256:VKQUdS31Q90KvX7EkKMHMBpUspcmItAh86a+v7PGiIs
2 changed files with 18 additions and 9 deletions

View file

@ -10,7 +10,7 @@ part "message.g.dart";
@Freezed(unionKey: "msgtype", fallbackUnion: "default")
abstract class MessageContent extends Content with _$MessageContent {
MessageContent._();
factory MessageContent({required String body}) = UnknownMessageContent;
factory MessageContent({String? body}) = UnknownMessageContent;
@FreezedUnionValue("m.text")
factory MessageContent.text({

View file

@ -276,11 +276,20 @@ class MessageRenderer extends ConsumerWidget {
],
],
),
MessageContent(:final body) => Row(
MessageContent(:final body) =>
body == null
? Text(
"This message is redacted",
style: errorStyle,
)
: Row(
spacing: 8,
mainAxisSize: .min,
children: [
Text("Unknown message type:", style: errorStyle),
Text(
"Unknown message type:",
style: errorStyle,
),
Text(body),
],
),