diff --git a/SodaLive/Sources/Live/Room/Create/LiveRoomCreateView.swift b/SodaLive/Sources/Live/Room/Create/LiveRoomCreateView.swift index 2058ea4..64c084b 100644 --- a/SodaLive/Sources/Live/Room/Create/LiveRoomCreateView.swift +++ b/SodaLive/Sources/Live/Room/Create/LiveRoomCreateView.swift @@ -176,9 +176,11 @@ struct LiveRoomCreateView: View { .frame(width: screenSize().width - 26.7) .padding(.top, 33.3) - GenderRestrictionView() - .frame(width: screenSize().width - 26.7) - .padding(.top, 33.3) + if viewModel.isAdult { + GenderRestrictionView() + .frame(width: screenSize().width - 26.7) + .padding(.top, 33.3) + } } PriceSettingView() diff --git a/SodaLive/Sources/Live/Room/Create/LiveRoomCreateViewModel.swift b/SodaLive/Sources/Live/Room/Create/LiveRoomCreateViewModel.swift index 2427ced..f538ab3 100644 --- a/SodaLive/Sources/Live/Room/Create/LiveRoomCreateViewModel.swift +++ b/SodaLive/Sources/Live/Room/Create/LiveRoomCreateViewModel.swift @@ -64,7 +64,13 @@ final class LiveRoomCreateViewModel: ObservableObject { } } - @Published var isAdult = false + @Published var isAdult = false { + didSet { + if !isAdult { + genderRestriction = .ALL + } + } + } @Published var genderRestriction: GenderRestriction = .ALL @Published var priceString = "0" { didSet { @@ -179,7 +185,7 @@ final class LiveRoomCreateViewModel: ObservableObject { tags: tags, numberOfPeople: Int(numberOfPeople)!, isAdult: isAdult, - genderRestriction: genderRestriction, + genderRestriction: isAdult ? genderRestriction : .ALL, price: price, type: roomType, password: (roomType == .PRIVATE && !password.trimmingCharacters(in: .whitespaces).isEmpty) ? password : nil, diff --git a/SodaLive/Sources/Live/Room/Edit/LiveRoomEditView.swift b/SodaLive/Sources/Live/Room/Edit/LiveRoomEditView.swift index c7d6c54..2e3054f 100644 --- a/SodaLive/Sources/Live/Room/Edit/LiveRoomEditView.swift +++ b/SodaLive/Sources/Live/Room/Edit/LiveRoomEditView.swift @@ -46,9 +46,11 @@ struct LiveRoomEditView: View { .frame(width: screenSize().width - 26.7) .padding(.top, 33.3) - GenderRestrictionView() - .frame(width: screenSize().width - 26.7) - .padding(.top, 33.3) + if viewModel.isAdult { + GenderRestrictionView() + .frame(width: screenSize().width - 26.7) + .padding(.top, 33.3) + } if !viewModel.isLoading { Text("라이브 수정") diff --git a/SodaLive/Sources/Live/Room/Edit/LiveRoomEditViewModel.swift b/SodaLive/Sources/Live/Room/Edit/LiveRoomEditViewModel.swift index d772aba..6147c0b 100644 --- a/SodaLive/Sources/Live/Room/Edit/LiveRoomEditViewModel.swift +++ b/SodaLive/Sources/Live/Room/Edit/LiveRoomEditViewModel.swift @@ -25,6 +25,13 @@ final class LiveRoomEditViewModel: ObservableObject { @Published var reservationDateString: String = "" @Published var reservationTimeString: String = "" @Published var genderRestriction: LiveRoomCreateViewModel.GenderRestriction = .ALL + @Published var isAdult: Bool = false { + didSet { + if !isAdult { + genderRestriction = .ALL + } + } + } @Published var errorMessage = "" @Published var isShowPopup = false @@ -52,7 +59,8 @@ final class LiveRoomEditViewModel: ObservableObject { title = room!.title notice = room!.notice numberOfPeople = String(room!.numberOfParticipantsTotal) - genderRestriction = room!.genderRestriction ?? .ALL + isAdult = room!.isAdult + genderRestriction = isAdult ? (room!.genderRestriction ?? .ALL) : .ALL if let beginDate = room!.beginDateTimeUtc.parseUtcIsoDate() { reservationDate = beginDate @@ -77,13 +85,15 @@ final class LiveRoomEditViewModel: ObservableObject { let beginTime = reservationTime.convertDateFormat(dateFormat: "HH:mm") let beginDateTime = "\(beginDate) \(beginTime)" + let desiredGenderRestriction: LiveRoomCreateViewModel.GenderRestriction = isAdult ? genderRestriction : .ALL + let currentGenderRestriction = room.genderRestriction ?? .ALL let request = EditLiveRoomInfoRequest( title: room.title != title ? title : nil, notice: room.notice != notice ? notice : nil, numberOfPeople: room.numberOfParticipantsTotal != Int(numberOfPeople)! ? Int(numberOfPeople)! : nil, beginDateTimeString: beginDateTimeStr != beginDateTime ? beginDateTime : nil, timezone: TimeZone.current.identifier, - genderRestriction: (room.genderRestriction ?? .ALL) != genderRestriction ? genderRestriction : nil + genderRestriction: currentGenderRestriction != desiredGenderRestriction ? desiredGenderRestriction : nil ) if (