diff --git a/SodaLive/Sources/Live/Room/LiveRoomView.swift b/SodaLive/Sources/Live/Room/LiveRoomView.swift index aa91b06..0b0ebbd 100644 --- a/SodaLive/Sources/Live/Room/LiveRoomView.swift +++ b/SodaLive/Sources/Live/Room/LiveRoomView.swift @@ -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() + } + } ) } diff --git a/SodaLive/Sources/Live/Room/LiveRoomViewModel.swift b/SodaLive/Sources/Live/Room/LiveRoomViewModel.swift index ec63bcc..694df17 100644 --- a/SodaLive/Sources/Live/Room/LiveRoomViewModel.swift +++ b/SodaLive/Sources/Live/Room/LiveRoomViewModel.swift @@ -713,12 +713,14 @@ final class LiveRoomViewModel: NSObject, ObservableObject { .store(in: &subscription) let nickname = getUserNicknameAndProfileUrl(accountId: kickOutId).nickname - 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 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