Merge branch 'krille/performance-warning' into 'main'

feat: Display performance warning when requesting more than 100 participants

See merge request famedly/company/frontend/famedlysdk!1301
This commit is contained in:
Malin Errenst 2023-05-30 11:48:51 +00:00
commit 8cb144aaae
1 changed files with 11 additions and 1 deletions

View File

@ -1537,7 +1537,8 @@ class Room {
Membership.join, Membership.join,
Membership.invite, Membership.invite,
Membership.knock, Membership.knock,
]]) async { ],
bool suppressWarning = false]) async {
if (!participantListComplete && partial) { if (!participantListComplete && partial) {
// we aren't fully loaded, maybe the users are in the database // we aren't fully loaded, maybe the users are in the database
final users = await client.database?.getUsers(this) ?? []; final users = await client.database?.getUsers(this) ?? [];
@ -1552,6 +1553,15 @@ class Room {
return getParticipants(membershipFilter); return getParticipants(membershipFilter);
} }
final memberCount = summary.mJoinedMemberCount;
if (!suppressWarning && memberCount != null && memberCount > 100) {
Logs().w('''
Loading a list of $memberCount participants for the room $id.
This may affect the performance. Please make sure to not unnecessary
request so many participants or suppress this warning.
''');
}
final matrixEvents = await client.getMembersByRoom(id); final matrixEvents = await client.getMembersByRoom(id);
final users = matrixEvents final users = matrixEvents
?.map((e) => Event.fromMatrixEvent(e, this).asUser) ?.map((e) => Event.fromMatrixEvent(e, this).asUser)