diff --git a/lib/helpers/extensions/build_event_options.dart b/lib/helpers/extensions/build_event_options.dart index fdf3bdf..e562d85 100644 --- a/lib/helpers/extensions/build_event_options.dart +++ b/lib/helpers/extensions/build_event_options.dart @@ -10,7 +10,6 @@ import "package:nexus/controllers/recent_emoji.dart"; import "package:nexus/controllers/rooms.dart"; import "package:nexus/controllers/room_chat.dart"; import "package:nexus/controllers/via.dart"; -import "package:nexus/helpers/extensions/event_id_is_fake.dart"; import "package:nexus/models/content/message.dart"; import "package:nexus/models/event.dart"; import "package:nexus/models/relation_type.dart"; @@ -230,7 +229,7 @@ extension BuildEventOptions on Event { .redaction(targetUser: sender, roomId: roomId), ), ) && - !eventId.isFake) + !eventId.startsWith("~")) PopupMenuItem( onTap: () => showReasonDialog( title: "Delete Message", @@ -247,7 +246,7 @@ extension BuildEventOptions on Event { ), ), - if (eventId.isFake) + if (eventId.startsWith("~")) PopupMenuItem( onTap: () => ref.watch(notifier).hideClientSticky(rowId), child: ListTile( diff --git a/lib/helpers/extensions/event_id_is_fake.dart b/lib/helpers/extensions/event_id_is_fake.dart deleted file mode 100644 index 2e660af..0000000 --- a/lib/helpers/extensions/event_id_is_fake.dart +++ /dev/null @@ -1,3 +0,0 @@ -extension EventIdIsFake on String { - bool get isFake => startsWith("~") || startsWith("\$gomuks"); -} diff --git a/lib/widgets/event_preview.dart b/lib/widgets/event_preview.dart index d15c8ab..9bd3392 100644 --- a/lib/widgets/event_preview.dart +++ b/lib/widgets/event_preview.dart @@ -18,20 +18,17 @@ class const EventPreview(final Event event, {super.key}) if (event.content is MessageContent) MessageAvatar(event), Flexible( - child: Row( + child: Wrap( crossAxisAlignment: .center, - mainAxisSize: .min, spacing: 8, + runSpacing: 2, children: [ - if (event.content is MessageContent) - Flexible(child: MessageDisplayname(event)), - Flexible( - child: EventRenderer( - event.rowId, - roomId: event.roomId, - textOnly: true, - maxLines: 1, - ), + if (event.content is MessageContent) MessageDisplayname(event), + EventRenderer( + event.rowId, + roomId: event.roomId, + textOnly: true, + maxLines: 1, ), ], ), diff --git a/lib/widgets/loading.dart b/lib/widgets/loading.dart index e92860e..180cd1b 100644 --- a/lib/widgets/loading.dart +++ b/lib/widgets/loading.dart @@ -1,15 +1,11 @@ import "package:material_ui/material_ui.dart"; -class const Loading({super.key, final double? dimension}) - extends StatelessWidget { +class const Loading({super.key, final double? height}) extends StatelessWidget { @override Widget build(BuildContext context) => Center( child: Padding( padding: .all(16), - child: SizedBox.square( - dimension: dimension, - child: CircularProgressIndicator(), - ), + child: SizedBox(height: height, child: CircularProgressIndicator()), ), ); } diff --git a/lib/widgets/renderers/message.dart b/lib/widgets/renderers/message.dart index b2dda31..43c0c2a 100644 --- a/lib/widgets/renderers/message.dart +++ b/lib/widgets/renderers/message.dart @@ -13,7 +13,6 @@ import "package:nexus/widgets/html/html.dart"; import "package:nexus/widgets/lazy_loading/message_avatar.dart"; import "package:nexus/widgets/lazy_loading/message_displayname.dart"; import "package:nexus/widgets/linkified_text.dart"; -import "package:nexus/widgets/loading.dart"; import "package:nexus/widgets/message_image.dart"; import "package:nexus/widgets/reaction_row.dart"; import "package:nexus/widgets/timestamp.dart"; @@ -198,32 +197,24 @@ class const MessageRenderer( onTap: onTapReply, child: Padding( padding: .symmetric(vertical: 8, horizontal: 12), - child: SizedBox( - height: 32, - child: OverflowBox( - alignment: .centerLeft, - minHeight: 0, - maxHeight: .infinity, - child: switch (ref.watch( - EventController.provider( - .new( - roomId: event.roomId, - eventId: event.replyTo!, - ), - ), - )) { - AsyncData(:final value?) || - AsyncLoading( - :final value?, - ) => EventPreview(value), - AsyncError _ => Text( - "An error occurred while fetching the reply", - style: errorStyle, - ), - _ => Loading(dimension: 12), - }, + child: switch (ref.watch( + EventController.provider( + .new( + roomId: event.roomId, + eventId: event.replyTo!, + ), ), - ), + )) { + AsyncData(:final value?) || + AsyncLoading( + :final value?, + ) => EventPreview(value), + AsyncError _ => Text( + "An error occurred while fetching the reply", + style: errorStyle, + ), + _ => Text("Fetching event..."), + }, ), ), ),