From 7fd053146df7b75c2df98c2d59e4228ebd57606d Mon Sep 17 00:00:00 2001 From: Mauro Romito Date: Thu, 6 Nov 2025 13:51:08 +0100 Subject: [PATCH] fix for members role not updating in the room members list --- .../RoomMembersListScreenViewModel.swift | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/ElementX/Sources/Screens/RoomMemberListScreen/RoomMembersListScreenViewModel.swift b/ElementX/Sources/Screens/RoomMemberListScreen/RoomMembersListScreenViewModel.swift index cebf0c851..59259bb8d 100644 --- a/ElementX/Sources/Screens/RoomMemberListScreen/RoomMembersListScreenViewModel.swift +++ b/ElementX/Sources/Screens/RoomMemberListScreen/RoomMembersListScreenViewModel.swift @@ -68,7 +68,8 @@ class RoomMembersListScreenViewModel: RoomMembersListScreenViewModelType, RoomMe hideLoadingIndicator(Self.setupMembersLoadingIndicatorIdentifier) } - roomProxy.membersPublisher.combineLatest(roomProxy.identityStatusChangesPublisher) + roomProxy.membersPublisher + .combineLatest(roomProxy.identityStatusChangesPublisher) .filter { !$0.0.isEmpty } .receive(on: DispatchQueue.main) .sink { [weak self] members, _ in @@ -80,6 +81,14 @@ class RoomMembersListScreenViewModel: RoomMembersListScreenViewModelType, RoomMe Task { await roomProxy.updateMembers() } } .store(in: &cancellables) + + roomProxy.infoPublisher + .map(\.powerLevels) + .removeDuplicates { $0?.userPowerLevels == $1?.userPowerLevels } + .sink { [weak self] _ in + Task { await self?.roomProxy.updateMembers() } + } + .store(in: &cancellables) } private func updateState(members: [RoomMemberProxyProtocol]) {