diff --git a/lib/pages/chat/chat_event_list.dart b/lib/pages/chat/chat_event_list.dart index 910641e09..a1e3e9530 100644 --- a/lib/pages/chat/chat_event_list.dart +++ b/lib/pages/chat/chat_event_list.dart @@ -8,6 +8,7 @@ import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/l10n/l10n.dart'; import 'package:fluffychat/pages/chat/chat.dart'; import 'package:fluffychat/pages/chat/events/message.dart'; +import 'package:fluffychat/pages/chat/seen_by_row.dart'; import 'package:fluffychat/pages/chat/typing_indicators.dart'; import 'package:fluffychat/utils/account_config.dart'; import 'package:fluffychat/utils/matrix_sdk_extensions/filtered_timeline_extension.dart'; @@ -76,7 +77,13 @@ class ChatEventList extends StatelessWidget { ), ); } - return TypingIndicators(controller); + return Column( + mainAxisSize: .min, + children: [ + SeenByRow(event: events.first), + TypingIndicators(controller), + ], + ); } // Request history button or progress indicator: diff --git a/lib/pages/chat/events/message.dart b/lib/pages/chat/events/message.dart index 434703c7f..2daa40654 100644 --- a/lib/pages/chat/events/message.dart +++ b/lib/pages/chat/events/message.dart @@ -10,7 +10,6 @@ import 'package:swipe_to_action/swipe_to_action.dart'; import 'package:fluffychat/config/setting_keys.dart'; import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/l10n/l10n.dart'; -import 'package:fluffychat/pages/chat/seen_by_row.dart'; import 'package:fluffychat/utils/adaptive_bottom_sheet.dart'; import 'package:fluffychat/utils/date_time_extension.dart'; import 'package:fluffychat/utils/file_description.dart'; @@ -858,7 +857,6 @@ class Message extends StatelessWidget { child: MessageReactions(event, timeline), ), ), - SeenByRow(timeline: timeline, event: event), if (enterThread != null) AnimatedSize( duration: FluffyThemes.animationDuration, diff --git a/lib/pages/chat/seen_by_row.dart b/lib/pages/chat/seen_by_row.dart index ef087dd3f..62185a451 100644 --- a/lib/pages/chat/seen_by_row.dart +++ b/lib/pages/chat/seen_by_row.dart @@ -7,9 +7,8 @@ import 'package:fluffychat/widgets/avatar.dart'; import 'package:fluffychat/widgets/matrix.dart'; class SeenByRow extends StatelessWidget { - final Timeline timeline; final Event event; - const SeenByRow({super.key, required this.timeline, required this.event}); + const SeenByRow({super.key, required this.event}); @override Widget build(BuildContext context) { @@ -17,9 +16,9 @@ class SeenByRow extends StatelessWidget { const maxAvatars = 7; return StreamBuilder( - stream: timeline.room.client.onSync.stream.where( + stream: event.room.client.onSync.stream.where( (syncUpdate) => - syncUpdate.rooms?.join?[timeline.room.id]?.ephemeral?.any( + syncUpdate.rooms?.join?[event.room.id]?.ephemeral?.any( (ephemeral) => ephemeral.type == 'm.receipt', ) ?? false, @@ -38,13 +37,15 @@ class SeenByRow extends StatelessWidget { ? Duration.zero : FluffyThemes.animationDuration, curve: FluffyThemes.animationCurve, - alignment: - timeline.events.isNotEmpty && - timeline.events.first.senderId == - Matrix.of(context).client.userID + alignment: event.senderId == Matrix.of(context).client.userID ? Alignment.topRight : Alignment.topLeft, - padding: const EdgeInsets.only(bottom: 4, top: 1), + padding: const EdgeInsets.only( + bottom: 4, + top: 1, + left: 8, + right: 8, + ), child: Wrap( spacing: 4, children: [