Make the room power levels optional as they can be missing depending on what state events are requested

This commit is contained in:
Stefan Ceriu
2025-06-25 12:35:04 +03:00
committed by Stefan Ceriu
parent c7ff6c019d
commit de723853e3
16 changed files with 65 additions and 45 deletions
@@ -88,6 +88,10 @@ class RoomMembersListScreenViewModel: RoomMembersListScreenViewModelType, RoomMe
Task {
showLoadingIndicator(Self.updateStateLoadingIndicatorIdentifier)
defer {
hideLoadingIndicator(Self.updateStateLoadingIndicatorIdentifier)
}
let members = members.sorted()
let roomMembersDetails = await buildMembersDetails(members: members)
self.members = members
@@ -99,12 +103,10 @@ class RoomMembersListScreenViewModel: RoomMembersListScreenViewModelType, RoomMe
bannedMembers: roomMembersDetails.bannedMembers,
bindings: state.bindings)
let powerLevels = roomProxy.infoPublisher.value.powerLevels
guard let powerLevels = roomProxy.infoPublisher.value.powerLevels else { fatalError("Missing room power levels") }
self.state.canInviteUsers = powerLevels.canOwnUserInvite()
self.state.canKickUsers = powerLevels.canOwnUserKick()
self.state.canBanUsers = powerLevels.canOwnUserBan()
hideLoadingIndicator(Self.updateStateLoadingIndicatorIdentifier)
}
}