From d6862233626982f33acca2c38d461481aebe2703 Mon Sep 17 00:00:00 2001 From: Yu Sung Date: Tue, 3 Feb 2026 14:09:59 +0900 Subject: [PATCH] =?UTF-8?q?=EC=97=B0=EB=A0=B9=20=EC=A0=9C=ED=95=9C?= =?UTF-8?q?=EC=97=90=20=EB=94=B0=EB=A5=B8=20=EC=84=B1=EB=B3=84=20=EC=A0=9C?= =?UTF-8?q?=ED=95=9C=20=EC=A0=84=EC=86=A1=20=EC=A1=B0=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Live/Room/Create/LiveRoomCreateView.swift | 8 +++++--- .../Live/Room/Create/LiveRoomCreateViewModel.swift | 10 ++++++++-- .../Sources/Live/Room/Edit/LiveRoomEditView.swift | 8 +++++--- .../Live/Room/Edit/LiveRoomEditViewModel.swift | 14 ++++++++++++-- 4 files changed, 30 insertions(+), 10 deletions(-) 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 (