크리에이터 채널 - 룰렛 설정

- 룰렛 설정 완료 메시지 표시
This commit is contained in:
Yu Sung 2024-10-04 14:04:08 +09:00
parent bb85658cb0
commit 76b5e62e6c
3 changed files with 24 additions and 9 deletions

View File

@ -202,7 +202,7 @@ struct UserProfileView: View {
Rectangle() Rectangle()
.frame(height: 6.7) .frame(height: 6.7)
.foregroundColor(Color(hex: "909090").opacity(0.5)) .foregroundColor(Color.gray90.opacity(0.5))
} }
.padding(.top, 26.7) .padding(.top, 26.7)
} }
@ -240,7 +240,7 @@ struct UserProfileView: View {
.padding(.vertical, 13.3) .padding(.vertical, 13.3)
.frame(width: screenSize().width - 66.7, alignment: .center) .frame(width: screenSize().width - 66.7, alignment: .center)
.font(.custom(Font.medium.rawValue, size: 12)) .font(.custom(Font.medium.rawValue, size: 12))
.background(Color(hex: "9970ff")) .background(Color.button)
.foregroundColor(Color.white) .foregroundColor(Color.white)
.multilineTextAlignment(.leading) .multilineTextAlignment(.leading)
.cornerRadius(20) .cornerRadius(20)
@ -363,7 +363,10 @@ struct UserProfileView: View {
} }
if isShowRouletteSettings { if isShowRouletteSettings {
RouletteSettingsView(isShowing: $isShowRouletteSettings, availableActive: false) { _, _ in } RouletteSettingsView(isShowing: $isShowRouletteSettings, availableActive: false) { _, message in
viewModel.errorMessage = message
viewModel.isShowPopup = true
}
} }
} }
.sheet( .sheet(

View File

@ -216,6 +216,7 @@ struct RouletteSettingsView: View {
) )
} }
} }
.ignoresSafeArea()
.popup(isPresented: $viewModel.isShowErrorPopup, type: .toast, position: .top, autohideIn: 1.3) { .popup(isPresented: $viewModel.isShowErrorPopup, type: .toast, position: .top, autohideIn: 1.3) {
GeometryReader { geo in GeometryReader { geo in
HStack { HStack {
@ -234,6 +235,7 @@ struct RouletteSettingsView: View {
} }
} }
.onAppear { .onAppear {
viewModel.availableActive = availableActive
viewModel.getAllRoulette(creatorId: UserDefaults.int(forKey: .userId)) viewModel.getAllRoulette(creatorId: UserDefaults.int(forKey: .userId))
} }
} }

View File

@ -48,6 +48,8 @@ final class RouletteSettingsViewModel: ObservableObject {
@Published var totalPercentage = Float(0) @Published var totalPercentage = Float(0)
var availableActive: Bool = true
func addOption() { func addOption() {
if (options.count >= 10) { if (options.count >= 10) {
return return
@ -177,11 +179,15 @@ final class RouletteSettingsViewModel: ObservableObject {
selectedRouletteTitle = "룰렛 1" selectedRouletteTitle = "룰렛 1"
} }
if availableActive {
if isActive { if isActive {
successMessage = "\(selectedRouletteTitle)로 설정하였습니다." successMessage = "\(selectedRouletteTitle)로 설정하였습니다."
} else { } else {
successMessage = "\(selectedRouletteTitle)을 설정했습니다." successMessage = "\(selectedRouletteTitle)을 설정했습니다."
} }
} else {
successMessage = "\(selectedRouletteTitle)을 생성했습니다."
}
let request = CreateRouletteRequest(can: can, isActive: isActive, items: items) let request = CreateRouletteRequest(can: can, isActive: isActive, items: items)
repository.createRoulette(request: request) repository.createRoulette(request: request)
@ -244,11 +250,15 @@ final class RouletteSettingsViewModel: ObservableObject {
selectedRouletteTitle = "룰렛 1" selectedRouletteTitle = "룰렛 1"
} }
if availableActive {
if isActive { if isActive {
successMessage = "\(selectedRouletteTitle)을 활성화 했습니다." successMessage = "\(selectedRouletteTitle)을 활성화 했습니다."
} else { } else {
successMessage = "\(selectedRouletteTitle)을 비활성화 했습니다." successMessage = "\(selectedRouletteTitle)을 비활성화 했습니다."
} }
} else {
successMessage = "\(selectedRouletteTitle)을 변경했습니다."
}
let request = UpdateRouletteRequest(id: rouletteId, can: can, isActive: isActive, items: items) let request = UpdateRouletteRequest(id: rouletteId, can: can, isActive: isActive, items: items)
repository.updateRoulette(request: request) repository.updateRoulette(request: request)