From 4f66bdc8178fb6927d3bb4bfef4a6535285f05bc Mon Sep 17 00:00:00 2001 From: Henry-Hiles Date: Fri, 30 Jan 2026 12:36:22 +0100 Subject: [PATCH] working member list --- lib/controllers/room_chat_controller.dart | 29 ++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/lib/controllers/room_chat_controller.dart b/lib/controllers/room_chat_controller.dart index cd0ffda..fc32be3 100644 --- a/lib/controllers/room_chat_controller.dart +++ b/lib/controllers/room_chat_controller.dart @@ -83,14 +83,37 @@ class RoomChatController extends AsyncNotifier { if (messages.length < 20) await loadOlder(controller); - await client.getRoomState( + final state = await client.getRoomState( GetRoomStateRequest( roomId: roomId, - fetchMembers: true, - includeMembers: false, + fetchMembers: room.metadata?.hasMemberList == false, + includeMembers: true, ), ); + ref + .watch(RoomsController.provider.notifier) + .update( + { + roomId: Room( + events: state, + state: state.fold( + const IMap.empty(), + (previousValue, stateEvent) => previousValue.add( + stateEvent.type, + (previousValue[stateEvent.type] ?? const IMap.empty()).addAll( + IMap({ + if (stateEvent.stateKey != null) + stateEvent.stateKey!: stateEvent.rowId, + }), + ), + ), + ), + ), + }.toIMap(), + const ISet.empty(), + ); + return controller; }