fix: Receipts disappear after reaction
This commit is contained in:
parent
727e442c94
commit
193d68a525
2 changed files with 16 additions and 10 deletions
|
|
@ -79,7 +79,10 @@ class ChatEventList extends StatelessWidget {
|
||||||
}
|
}
|
||||||
return Column(
|
return Column(
|
||||||
mainAxisSize: .min,
|
mainAxisSize: .min,
|
||||||
children: [SeenByRow(controller), TypingIndicators(controller)],
|
children: [
|
||||||
|
SeenByRow(timeline: timeline, event: events.first),
|
||||||
|
TypingIndicators(controller),
|
||||||
|
],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,16 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
|
import 'package:matrix/matrix.dart';
|
||||||
|
|
||||||
import 'package:fluffychat/config/themes.dart';
|
import 'package:fluffychat/config/themes.dart';
|
||||||
import 'package:fluffychat/pages/chat/chat.dart';
|
|
||||||
import 'package:fluffychat/utils/room_status_extension.dart';
|
import 'package:fluffychat/utils/room_status_extension.dart';
|
||||||
import 'package:fluffychat/widgets/avatar.dart';
|
import 'package:fluffychat/widgets/avatar.dart';
|
||||||
import 'package:fluffychat/widgets/matrix.dart';
|
import 'package:fluffychat/widgets/matrix.dart';
|
||||||
|
|
||||||
class SeenByRow extends StatelessWidget {
|
class SeenByRow extends StatelessWidget {
|
||||||
final ChatController controller;
|
final Timeline timeline;
|
||||||
const SeenByRow(this.controller, {super.key});
|
final Event event;
|
||||||
|
const SeenByRow({super.key, required this.timeline, required this.event});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
|
@ -16,16 +18,17 @@ class SeenByRow extends StatelessWidget {
|
||||||
|
|
||||||
const maxAvatars = 7;
|
const maxAvatars = 7;
|
||||||
return StreamBuilder(
|
return StreamBuilder(
|
||||||
stream: controller.room.client.onSync.stream.where(
|
stream: timeline.room.client.onSync.stream.where(
|
||||||
(syncUpdate) =>
|
(syncUpdate) =>
|
||||||
syncUpdate.rooms?.join?[controller.room.id]?.ephemeral?.any(
|
syncUpdate.rooms?.join?[timeline.room.id]?.ephemeral?.any(
|
||||||
(ephemeral) => ephemeral.type == 'm.receipt',
|
(ephemeral) => ephemeral.type == 'm.receipt',
|
||||||
) ??
|
) ??
|
||||||
false,
|
false,
|
||||||
),
|
),
|
||||||
builder: (context, asyncSnapshot) {
|
builder: (context, asyncSnapshot) {
|
||||||
final seenByUsers = controller.room.getSeenByUsers(
|
final seenByUsers = timeline.room.getSeenByUsers(
|
||||||
controller.timeline!,
|
timeline,
|
||||||
|
eventId: event.eventId,
|
||||||
);
|
);
|
||||||
return Container(
|
return Container(
|
||||||
width: double.infinity,
|
width: double.infinity,
|
||||||
|
|
@ -40,8 +43,8 @@ class SeenByRow extends StatelessWidget {
|
||||||
: FluffyThemes.animationDuration,
|
: FluffyThemes.animationDuration,
|
||||||
curve: FluffyThemes.animationCurve,
|
curve: FluffyThemes.animationCurve,
|
||||||
alignment:
|
alignment:
|
||||||
controller.timeline!.events.isNotEmpty &&
|
timeline.events.isNotEmpty &&
|
||||||
controller.timeline!.events.first.senderId ==
|
timeline.events.first.senderId ==
|
||||||
Matrix.of(context).client.userID
|
Matrix.of(context).client.userID
|
||||||
? Alignment.topRight
|
? Alignment.topRight
|
||||||
: Alignment.topLeft,
|
: Alignment.topLeft,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue