Fixes for reply handling

This commit is contained in:
Henry Hiles 2025-11-28 18:04:47 -05:00
commit 00ab2676b2
No known key found for this signature in database
4 changed files with 34 additions and 25 deletions

View file

@ -5,9 +5,12 @@ import "package:nexus/models/full_room.dart";
class CurrentRoomController extends AsyncNotifier<FullRoom?> {
@override
Future<FullRoom?> build() async => (await ref.watch(
SpacesController.provider.future,
))[0].children[0].roomData.fullRoom;
Future<FullRoom?> build() async {
final spaces = await ref.watch(SpacesController.provider.future);
if (spaces.isEmpty || spaces[0].children.isEmpty) return null;
return spaces[0].children[0].roomData.fullRoom;
}
Future<void> set(FullRoom room) async {
await future;

View file

@ -33,14 +33,7 @@ class RoomChatController extends AsyncNotifier<ChatController> {
}).cancel,
);
return InMemoryChatController(
messages: {
for (var msg in (await Future.wait(
response.chunk.map(
(event) => Event.fromMatrixEvent(event, room).toMessage(),
),
)).nonNulls.toList().reversed.toList())
msg.id: msg,
}.values.toList(),
messages: await response.chunk.toMessages(room),
);
}
@ -63,12 +56,9 @@ class RoomChatController extends AsyncNotifier<ChatController> {
final response = await ref
.watch(EventsController.provider(room).notifier)
.prev();
await controller.insertAllMessages(
(await Future.wait(
response.chunk.map(
(event) => Event.fromMatrixEvent(event, room).toMessage(),
),
)).nonNulls.toList().reversed.toList(),
await response.chunk.toMessages(room),
index: 0,
);
}