라이브 - 방장이 아닌 사용자가 유저 차단 시 라이브에서 강퇴되는 버그 수정

This commit is contained in:
Yu Sung 2023-11-21 14:20:01 +09:00
parent 6cbd4edacc
commit 823bd8e92d
2 changed files with 17 additions and 8 deletions

View File

@ -597,7 +597,12 @@ struct LiveRoomView: View {
UserBlockConfirmDialogView(
isShowing: $viewModel.isShowUesrBlockConfirm,
nickname: viewModel.reportUserNickname,
confirmAction: { viewModel.userBlock() }
confirmAction: {
viewModel.userBlock { userId in
viewModel.kickOutId = userId
viewModel.kickOut()
}
}
)
}

View File

@ -713,12 +713,14 @@ final class LiveRoomViewModel: NSObject, ObservableObject {
.store(in: &subscription)
let nickname = getUserNicknameAndProfileUrl(accountId: kickOutId).nickname
if UserDefaults.int(forKey: .userId) == liveRoomInfo?.creatorId {
agora.sendMessageToPeer(peerId: String(kickOutId), rawMessage: LiveRoomRequestType.KICK_OUT.rawValue.data(using: .utf8)!, completion: { [unowned self] errorCode in
if errorCode == .ok {
self.popupContent = "\(nickname)님을 내보냈습니다."
self.isShowPopup = true
}
})
}
if let index = muteSpeakers.firstIndex(of: UInt(kickOutId)) {
muteSpeakers.remove(at: index)
@ -1129,7 +1131,7 @@ final class LiveRoomViewModel: NSObject, ObservableObject {
self.agora.sendRawMessageToGroup(rawMessage: setManagerMessage)
}
func userBlock() {
func userBlock(onSuccess: @escaping (Int) -> Void) {
isLoading = true
userRepository.memberBlock(userId: reportUserId)
.sink { result in
@ -1150,6 +1152,8 @@ final class LiveRoomViewModel: NSObject, ObservableObject {
if decoded.success {
self.reportMessage = "차단하였습니다."
self.getUserProfile(userId: reportUserId)
onSuccess(reportUserId)
self.reportUserId = 0
self.reportUserNickname = ""
self.reportUserIsBlocked = false