From a150ef2ecfb4a1e32f24597e66fbf1a745350637 Mon Sep 17 00:00:00 2001 From: Henry-Hiles Date: Tue, 26 May 2026 20:04:09 -0400 Subject: [PATCH] Fix some textOnly handling --- lib/widgets/renderers/event.dart | 27 ++++++++++++------------ lib/widgets/renderers/message.dart | 34 ++++++++++++++++++------------ 2 files changed, 35 insertions(+), 26 deletions(-) diff --git a/lib/widgets/renderers/event.dart b/lib/widgets/renderers/event.dart index 5f42fd9..d1442bc 100644 --- a/lib/widgets/renderers/event.dart +++ b/lib/widgets/renderers/event.dart @@ -163,7 +163,7 @@ class EventRenderer extends ConsumerWidget { if (child != null) ...[ if (textOnly) child - else + else ...[ GestureDetector( onSecondaryTapUp: contextMenuCallback, onLongPressStart: contextMenuCallback, @@ -173,22 +173,23 @@ class EventRenderer extends ConsumerWidget { ), ), - ...[ - if (event.content is! MessageContent) ReactionRow(event), + ...[ + if (event.content is! MessageContent) ReactionRow(event), - if (event.sendError != null && event.sendError != "not sent") - Text( - event.sendError!, - style: theme.textTheme.labelSmall?.copyWith( - color: theme.colorScheme.error, + if (event.sendError != null && event.sendError != "not sent") + Text( + event.sendError!, + style: theme.textTheme.labelSmall?.copyWith( + color: theme.colorScheme.error, + ), ), + ].map( + (child) => Padding( + padding: EdgeInsetsGeometry.only(left: 4), + child: child, ), - ].map( - (child) => Padding( - padding: EdgeInsetsGeometry.only(left: 4), - child: child, ), - ), + ], ] else if (textOnly) Text("Unknown event type", style: errorStyle), ], diff --git a/lib/widgets/renderers/message.dart b/lib/widgets/renderers/message.dart index 6957c54..4f34068 100644 --- a/lib/widgets/renderers/message.dart +++ b/lib/widgets/renderers/message.dart @@ -140,20 +140,28 @@ class MessageRenderer extends ConsumerWidget { "Unable to decrypt event", style: errorStyle, ), - StickerContent(:final url, :final info) => - ConstrainedBox( - constraints: BoxConstraints.loose(Size.square(200)), - child: MessageImage( - url.mxcToHttps( - ref.watch( - ClientStateController.provider.select( - (value) => value!.homeserverUrl!, + StickerContent(:final body, :final url, :final info) => + textOnly + ? Text( + body, + maxLines: maxLines, + overflow: TextOverflow.ellipsis, + ) + : ConstrainedBox( + constraints: BoxConstraints.loose( + Size.square(200), + ), + child: MessageImage( + url.mxcToHttps( + ref.watch( + ClientStateController.provider.select( + (value) => value!.homeserverUrl!, + ), + ), + ), + info: info, ), ), - ), - info: info, - ), - ), // TODO: Handle locations // LocationMessageContent(:final body , :final geoUri) => TextMessageContent( @@ -272,7 +280,7 @@ class MessageRenderer extends ConsumerWidget { UrlPreview(link.url), SizedBox(height: 4), - ReactionRow(event), + if (!textOnly) ReactionRow(event), ], ], ),