wip room fixes (broken)

This commit is contained in:
Henry Hiles 2026-03-01 10:29:32 -05:00
commit b672b308b8
No known key found for this signature in database

View file

@ -9,7 +9,6 @@ import "package:nexus/controllers/message_controller.dart";
import "package:nexus/controllers/messages_controller.dart"; import "package:nexus/controllers/messages_controller.dart";
import "package:nexus/controllers/new_events_controller.dart"; import "package:nexus/controllers/new_events_controller.dart";
import "package:nexus/controllers/rooms_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/message_config.dart";
import "package:nexus/models/messages_config.dart"; import "package:nexus/models/messages_config.dart";
import "package:nexus/models/requests/get_room_state_request.dart"; import "package:nexus/models/requests/get_room_state_request.dart";
@ -26,7 +25,7 @@ class RoomChatController extends AsyncNotifier<ChatController> {
@override @override
Future<ChatController> build() async { Future<ChatController> build() async {
final client = ref.watch(ClientController.provider.notifier); 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(); if (room == null) return InMemoryChatController();
final messages = await ref.watch( final messages = await ref.watch(
@ -111,7 +110,7 @@ class RoomChatController extends AsyncNotifier<ChatController> {
); );
ref ref
.watch(RoomsController.provider.notifier) .read(RoomsController.provider.notifier)
.update( .update(
{ {
roomId: Room( roomId: Room(
@ -165,13 +164,16 @@ class RoomChatController extends AsyncNotifier<ChatController> {
} }
Future<void> loadOlder([InMemoryChatController? chatController]) async { Future<void> loadOlder([InMemoryChatController? chatController]) async {
final controller = chatController ?? await future; final response = await ref
final client = ref.watch(ClientController.provider.notifier); .watch(ClientController.provider.notifier)
.paginate(
final response = await client.paginate(
PaginateRequest( PaginateRequest(
roomId: roomId, roomId: roomId,
maxTimelineId: controller.messages.firstOrNull?.metadata?["timelineId"], maxTimelineId: ref
.watch(RoomsController.provider)[roomId]
?.timeline
.firstOrNull
?.timelineRowId,
), ),
); );
@ -203,6 +205,8 @@ class RoomChatController extends AsyncNotifier<ChatController> {
MessagesConfig(room: room, events: response.events.reversed), MessagesConfig(room: room, events: response.events.reversed),
).future, ).future,
); );
final controller = chatController ?? await future;
await controller.insertAllMessages( await controller.insertAllMessages(
messages messages
.where( .where(