forked from Henry-Hiles/nexus
working member list
This commit is contained in:
parent
8946353228
commit
79fe4ea440
1 changed files with 26 additions and 3 deletions
|
|
@ -83,14 +83,37 @@ class RoomChatController extends AsyncNotifier<ChatController> {
|
||||||
|
|
||||||
if (messages.length < 20) await loadOlder(controller);
|
if (messages.length < 20) await loadOlder(controller);
|
||||||
|
|
||||||
await client.getRoomState(
|
final state = await client.getRoomState(
|
||||||
GetRoomStateRequest(
|
GetRoomStateRequest(
|
||||||
roomId: roomId,
|
roomId: roomId,
|
||||||
fetchMembers: true,
|
fetchMembers: room.metadata?.hasMemberList == false,
|
||||||
includeMembers: 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;
|
return controller;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue