diff --git a/lib/models/content/reaction.dart b/lib/models/content/reaction.dart index 7a3d714..3115ae0 100644 --- a/lib/models/content/reaction.dart +++ b/lib/models/content/reaction.dart @@ -3,13 +3,14 @@ import "package:nexus/models/content/content.dart"; part "reaction.freezed.dart"; part "reaction.g.dart"; -String? keyFromJson(Map json) => json["key"]; - @freezed abstract class ReactionContent extends Content with _$ReactionContent { ReactionContent._(); + static String? keyJsonFromJson(Map json, String key) => + json["m.relates_to"]?["key"]; + factory ReactionContent({ - @JsonKey(fromJson: keyFromJson, name: "m.relates_to") String? key, + @JsonKey(readValue: ReactionContent.keyJsonFromJson) String? key, }) = _ReactionContent; factory ReactionContent.fromJson(Map json) => diff --git a/lib/widgets/chat_page/render_event.dart b/lib/widgets/chat_page/render_event.dart index 5e9c78c..14d5117 100644 --- a/lib/widgets/chat_page/render_event.dart +++ b/lib/widgets/chat_page/render_event.dart @@ -62,12 +62,14 @@ class RenderEvent extends ConsumerWidget { children: getEventOptions!(event).toList(), ); + if (event.redactedBy != null) return SizedBox.shrink(); + final child = switch (event.content) { Content(:final parseError?) => SelectableText( - "An error occurred while parsing this event:\n$parseError", + "An error occurred while parsing this event:\n$parseError\n${parseError.stackTrace}", style: errorStyle, ), - EncryptedContent() => Text("Unable to decrypt event"), + EncryptedContent() => Text("Unable to decrypt event", style: errorStyle), MessageContent() => Row( crossAxisAlignment: CrossAxisAlignment.start, spacing: 8, diff --git a/lib/widgets/link_preview.dart b/lib/widgets/link_preview.dart index aa8e408..843f5ac 100644 --- a/lib/widgets/link_preview.dart +++ b/lib/widgets/link_preview.dart @@ -24,6 +24,7 @@ class LinkPreview extends ConsumerWidget { .watch(LaunchHelper.provider) .launchUrl(Uri.parse(link)), child: Card( + margin: EdgeInsets.symmetric(vertical: 4), color: Theme.of( context, ).colorScheme.surfaceContainerHighest,