룰렛 설정 개수에 따라 룰렛 프리셋 버튼 활성화/비활성화

This commit is contained in:
Yu Sung 2024-02-28 03:22:42 +09:00
parent bb64adc684
commit 367be74279
3 changed files with 8 additions and 4 deletions

View File

@ -28,6 +28,7 @@ struct RouletteSettingsView: View {
HStack(spacing: 13.3) { HStack(spacing: 13.3) {
SelectedButtonView( SelectedButtonView(
title: "룰렛 1", title: "룰렛 1",
isActive: true,
isSelected: viewModel.selectedRoulette == .ROULETTE_1 isSelected: viewModel.selectedRoulette == .ROULETTE_1
) )
.onTapGesture { .onTapGesture {
@ -36,6 +37,7 @@ struct RouletteSettingsView: View {
SelectedButtonView( SelectedButtonView(
title: "룰렛 2", title: "룰렛 2",
isActive: viewModel.rouletteList.count > 0,
isSelected: viewModel.selectedRoulette == .ROULETTE_2 isSelected: viewModel.selectedRoulette == .ROULETTE_2
) )
.onTapGesture { .onTapGesture {
@ -44,6 +46,7 @@ struct RouletteSettingsView: View {
SelectedButtonView( SelectedButtonView(
title: "룰렛 3", title: "룰렛 3",
isActive: viewModel.rouletteList.count > 1,
isSelected: viewModel.selectedRoulette == .ROULETTE_3 isSelected: viewModel.selectedRoulette == .ROULETTE_3
) )
.onTapGesture { .onTapGesture {

View File

@ -44,7 +44,7 @@ final class RouletteSettingsViewModel: ObservableObject {
var can = 0 var can = 0
private var rouletteId = 0 private var rouletteId = 0
private var rouletteList = [GetNewRouletteResponse]() @Published var rouletteList = [GetNewRouletteResponse]()
func plusWeight(index: Int) { func plusWeight(index: Int) {
options[index].weight += 1 options[index].weight += 1

View File

@ -10,6 +10,7 @@ import SwiftUI
struct SelectedButtonView: View { struct SelectedButtonView: View {
let title: String let title: String
let isActive: Bool
let isSelected: Bool let isSelected: Bool
var body: some View { var body: some View {
@ -20,15 +21,15 @@ struct SelectedButtonView: View {
Text(title) Text(title)
.font(.custom(Font.bold.rawValue, size: 14.7)) .font(.custom(Font.bold.rawValue, size: 14.7))
.foregroundColor(isSelected ? .white : Color.button) .foregroundColor(!isActive ? Color.gray77 : isSelected ? .white : Color.button)
} }
.padding(.vertical, 14.3) .padding(.vertical, 14.3)
.frame(maxWidth: .infinity) .frame(maxWidth: .infinity)
.background(isSelected ? Color.button : Color.bg) .background(!isActive ? Color.gray55 : isSelected ? Color.button : Color.bg)
.cornerRadius(6.7) .cornerRadius(6.7)
} }
} }
#Preview { #Preview {
SelectedButtonView(title: "테스트", isSelected: true) SelectedButtonView(title: "테스트", isActive: true, isSelected: true)
} }