fix(live-room): 스탭 해제 후 방 정보 갱신 타이밍을 보정한다
This commit is contained in:
@@ -1055,9 +1055,12 @@ final class LiveRoomViewModel: NSObject, ObservableObject {
|
||||
agora.sendMessageToPeer(peerId: String(peerId), rawMessage: LiveRoomRequestType.CHANGE_LISTENER.rawValue.data(using: .utf8)!) { [unowned self] _, error in
|
||||
if error == nil {
|
||||
if isFromManager {
|
||||
getRoomInfo()
|
||||
setManagerMessage()
|
||||
releaseManagerMessageToPeer(userId: peerId)
|
||||
|
||||
DispatchQueue.main.asyncAfter(deadline: .now() + 0.8) { [weak self] in
|
||||
self?.getRoomInfo()
|
||||
}
|
||||
|
||||
self.popupContent = "\(getUserNicknameAndProfileUrl(accountId: peerId).nickname)님을 스탭에서 해제했어요."
|
||||
} else {
|
||||
self.popupContent = "\(getUserNicknameAndProfileUrl(accountId: peerId).nickname)님을 리스너로 변경했어요."
|
||||
@@ -1101,7 +1104,10 @@ final class LiveRoomViewModel: NSObject, ObservableObject {
|
||||
}
|
||||
|
||||
func setListener() {
|
||||
repository.setListener(roomId: AppState.shared.roomId, userId: UserDefaults.int(forKey: .userId))
|
||||
let currentUserId = UserDefaults.int(forKey: .userId)
|
||||
let wasManager = liveRoomInfo?.managerList.contains(where: { $0.id == currentUserId }) ?? false
|
||||
|
||||
repository.setListener(roomId: AppState.shared.roomId, userId: currentUserId)
|
||||
.sink { result in
|
||||
switch result {
|
||||
case .finished:
|
||||
@@ -1121,10 +1127,14 @@ final class LiveRoomViewModel: NSObject, ObservableObject {
|
||||
self.agora.setRole(role: .audience)
|
||||
self.isMute = false
|
||||
self.agora.mute(isMute)
|
||||
if let index = self.muteSpeakers.firstIndex(of: UInt(UserDefaults.int(forKey: .userId))) {
|
||||
if let index = self.muteSpeakers.firstIndex(of: UInt(currentUserId)) {
|
||||
self.muteSpeakers.remove(at: index)
|
||||
}
|
||||
self.getRoomInfo()
|
||||
|
||||
if wasManager {
|
||||
self.setManagerMessage()
|
||||
}
|
||||
}
|
||||
} catch {
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user