From 823bd8e92dc12b88369eacacab317b09ad278cc8 Mon Sep 17 00:00:00 2001 From: Yu Sung Date: Tue, 21 Nov 2023 14:20:01 +0900 Subject: [PATCH] =?UTF-8?q?=EB=9D=BC=EC=9D=B4=EB=B8=8C=20-=20=EB=B0=A9?= =?UTF-8?q?=EC=9E=A5=EC=9D=B4=20=EC=95=84=EB=8B=8C=20=EC=82=AC=EC=9A=A9?= =?UTF-8?q?=EC=9E=90=EA=B0=80=20=EC=9C=A0=EC=A0=80=20=EC=B0=A8=EB=8B=A8=20?= =?UTF-8?q?=EC=8B=9C=20=EB=9D=BC=EC=9D=B4=EB=B8=8C=EC=97=90=EC=84=9C=20?= =?UTF-8?q?=EA=B0=95=ED=87=B4=EB=90=98=EB=8A=94=20=EB=B2=84=EA=B7=B8=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SodaLive/Sources/Live/Room/LiveRoomView.swift | 7 ++++++- .../Sources/Live/Room/LiveRoomViewModel.swift | 18 +++++++++++------- 2 files changed, 17 insertions(+), 8 deletions(-) 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