라이브 입장 메시지 on/off 스위치 추가
- 라이브 정보 수정 가장 아래에 입장 메시지 on/off 스위치 추가
This commit is contained in:
		| @@ -16,6 +16,7 @@ struct LiveRoomInfoEditDialog: View { | ||||
|     @State private var title = "" | ||||
|     @State private var notice = "" | ||||
|     @State private var isAdult = false | ||||
|     @State private var isEntryMessageEnabled = true | ||||
|      | ||||
|     let placeholder = "라이브 공지를 입력하세요" | ||||
|      | ||||
| @@ -24,19 +25,20 @@ struct LiveRoomInfoEditDialog: View { | ||||
|     let isLoading: Bool | ||||
|     let coverImageUrl: String? | ||||
|     let coverImage: UIImage? | ||||
|     var confirmAction: (String, String, Bool) -> Void | ||||
|     var confirmAction: (String, String, Bool, Bool) -> Void | ||||
|      | ||||
|     init( | ||||
|         isShowing: Binding<Bool>, | ||||
|         isShowPhotoPicker: Binding<Bool>, | ||||
|         viewModel: LiveRoomViewModel, | ||||
|         isAdult: Bool, | ||||
|         isEntryMessageEnabled: Bool, | ||||
|         isLoading: Bool, | ||||
|         currentTitle: String, | ||||
|         currentNotice: String, | ||||
|         coverImageUrl: String, | ||||
|         coverImage: UIImage?, | ||||
|         confirmAction: @escaping (String, String, Bool) -> Void | ||||
|         confirmAction: @escaping (String, String, Bool, Bool) -> Void | ||||
|     ) { | ||||
|         self._isShowing = isShowing | ||||
|         self._isShowPhotoPicker = isShowPhotoPicker | ||||
| @@ -44,6 +46,7 @@ struct LiveRoomInfoEditDialog: View { | ||||
|         self._viewModel = StateObject(wrappedValue: viewModel) | ||||
|         self.isLoading = isLoading | ||||
|         self.isAdult = isAdult | ||||
|         self.isEntryMessageEnabled = isEntryMessageEnabled | ||||
|          | ||||
|         self.title = currentTitle | ||||
|         self.notice = currentNotice | ||||
| @@ -159,6 +162,22 @@ struct LiveRoomInfoEditDialog: View { | ||||
|                     ) | ||||
|                     .padding(.top, 33.3) | ||||
|                      | ||||
|                     HStack(spacing: 0) { | ||||
|                         Text("입장메시지") | ||||
|                             .font(.custom(Font.bold.rawValue, size: 16.7)) | ||||
|                             .foregroundColor(Color.grayee) | ||||
|                          | ||||
|                         Spacer() | ||||
|                          | ||||
|                         Image(isEntryMessageEnabled ? "btn_toggle_on_big" : "btn_toggle_off_big") | ||||
|                             .resizable() | ||||
|                             .frame(width: 33.3, height: 20) | ||||
|                             .onTapGesture { | ||||
|                                 isEntryMessageEnabled.toggle() | ||||
|                             } | ||||
|                     } | ||||
|                     .padding(.top, 33.3) | ||||
|                      | ||||
|                     HStack(spacing: 13.3) { | ||||
|                         Text("취소") | ||||
|                             .font(.custom(Font.bold.rawValue, size: 18.3)) | ||||
| @@ -187,7 +206,8 @@ struct LiveRoomInfoEditDialog: View { | ||||
|                                 confirmAction( | ||||
|                                     title, | ||||
|                                     notice.trimmingCharacters(in: .whitespacesAndNewlines) != placeholder ? notice : "", | ||||
|                                     isAdult | ||||
|                                     isAdult, | ||||
|                                     isEntryMessageEnabled | ||||
|                                 ) | ||||
|                                 isShowing = false | ||||
|                             } | ||||
|   | ||||
| @@ -129,6 +129,7 @@ final class LiveRoomViewModel: NSObject, ObservableObject { | ||||
|      | ||||
|     @Published var isBgOn = true | ||||
|     @Published var isSignatureOn = true | ||||
|     @Published var isEntryMessageEnabled = true | ||||
|     @Published var donationStatus: GetLiveRoomDonationStatusResponse? | ||||
|     @Published var heartStatus: GetLiveRoomHeartListResponse? | ||||
|      | ||||
| @@ -762,8 +763,6 @@ final class LiveRoomViewModel: NSObject, ObservableObject { | ||||
|         ) | ||||
|          | ||||
|         if (request.title == nil && request.notice == nil && coverImage == nil && menu == liveRoomInfo?.menuPan && request.isAdult == nil) { | ||||
|             self.errorMessage = "변경사항이 없습니다." | ||||
|             self.isShowErrorPopup = true | ||||
|             return | ||||
|         } | ||||
|          | ||||
| @@ -2273,7 +2272,7 @@ extension LiveRoomViewModel: AgoraRtmChannelDelegate { | ||||
|      | ||||
|     func channel(_ channel: AgoraRtmChannel, memberJoined member: AgoraRtmMember) { | ||||
|         getRoomInfo(userId: Int(member.userId)!) { [unowned self] nickname in | ||||
|             if !nickname.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty { | ||||
|             if !nickname.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty && isEntryMessageEnabled { | ||||
|                 DispatchQueue.main.async { [unowned self] in | ||||
|                     self.messages.append(LiveRoomJoinChat(nickname: nickname)) | ||||
|                     self.messageChangeFlag.toggle() | ||||
|   | ||||
| @@ -731,17 +731,19 @@ struct LiveRoomViewV2: View { | ||||
|                     isShowPhotoPicker: $viewModel.isShowPhotoPicker, | ||||
|                     viewModel: viewModel, | ||||
|                     isAdult: liveRoomInfo.isAdult, | ||||
|                     isEntryMessageEnabled: viewModel.isEntryMessageEnabled, | ||||
|                     isLoading: viewModel.isLoading, | ||||
|                     currentTitle: liveRoomInfo.title, | ||||
|                     currentNotice: liveRoomInfo.notice, | ||||
|                     coverImageUrl: liveRoomInfo.coverImageUrl, | ||||
|                     coverImage: viewModel.coverImage | ||||
|                 ) { newTitle, newNotice, isAdult in | ||||
|                 ) { newTitle, newNotice, isAdult, isEntryMessageEnabled in | ||||
|                     self.viewModel.editLiveRoomInfo( | ||||
|                         title: newTitle, | ||||
|                         notice: newNotice, | ||||
|                         isAdult: isAdult | ||||
|                     ) | ||||
|                     self.viewModel.isEntryMessageEnabled = isEntryMessageEnabled | ||||
|                 } | ||||
|             } else { | ||||
|                 EmptyView() | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Yu Sung
					Yu Sung