From b672b308b875ad44ba4a76d94a0633705144db37 Mon Sep 17 00:00:00 2001 From: Henry-Hiles Date: Sun, 1 Mar 2026 10:29:32 -0500 Subject: [PATCH] wip room fixes (broken) --- lib/controllers/room_chat_controller.dart | 28 +++++++++++++---------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/lib/controllers/room_chat_controller.dart b/lib/controllers/room_chat_controller.dart index 108a439..8e2d710 100644 --- a/lib/controllers/room_chat_controller.dart +++ b/lib/controllers/room_chat_controller.dart @@ -9,7 +9,6 @@ import "package:nexus/controllers/message_controller.dart"; import "package:nexus/controllers/messages_controller.dart"; import "package:nexus/controllers/new_events_controller.dart"; import "package:nexus/controllers/rooms_controller.dart"; -import "package:nexus/controllers/selected_room_controller.dart"; import "package:nexus/models/message_config.dart"; import "package:nexus/models/messages_config.dart"; import "package:nexus/models/requests/get_room_state_request.dart"; @@ -26,7 +25,7 @@ class RoomChatController extends AsyncNotifier { @override Future build() async { final client = ref.watch(ClientController.provider.notifier); - final room = ref.read(SelectedRoomController.provider); + final room = ref.read(RoomsController.provider)[roomId]; if (room == null) return InMemoryChatController(); final messages = await ref.watch( @@ -111,7 +110,7 @@ class RoomChatController extends AsyncNotifier { ); ref - .watch(RoomsController.provider.notifier) + .read(RoomsController.provider.notifier) .update( { roomId: Room( @@ -165,15 +164,18 @@ class RoomChatController extends AsyncNotifier { } Future loadOlder([InMemoryChatController? chatController]) async { - final controller = chatController ?? await future; - final client = ref.watch(ClientController.provider.notifier); - - final response = await client.paginate( - PaginateRequest( - roomId: roomId, - maxTimelineId: controller.messages.firstOrNull?.metadata?["timelineId"], - ), - ); + final response = await ref + .watch(ClientController.provider.notifier) + .paginate( + PaginateRequest( + roomId: roomId, + maxTimelineId: ref + .watch(RoomsController.provider)[roomId] + ?.timeline + .firstOrNull + ?.timelineRowId, + ), + ); ref .watch(RoomsController.provider.notifier) @@ -203,6 +205,8 @@ class RoomChatController extends AsyncNotifier { MessagesConfig(room: room, events: response.events.reversed), ).future, ); + + final controller = chatController ?? await future; await controller.insertAllMessages( messages .where(