You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
1.8 KiB
64 lines
1.8 KiB
//
|
|
// ChoiceCapsule.swift
|
|
// AllIn
|
|
//
|
|
// Created by Lucas on 26/09/2023.
|
|
//
|
|
|
|
import SwiftUI
|
|
import Model
|
|
|
|
struct ChoiceCapsule: View {
|
|
let filter: BetFilter
|
|
@State var pressed = false
|
|
@ObservedObject var viewModel: BetViewModel
|
|
|
|
var label: String {
|
|
switch filter {
|
|
case .isPublic:
|
|
return String(localized: "bet_public")
|
|
case .isInvitation:
|
|
return String(localized: "bet_invitation")
|
|
case .inProgress:
|
|
return String(localized: "bet_current")
|
|
case .isFinished:
|
|
return String(localized: "bet_finished")
|
|
default:
|
|
return "NaN"
|
|
}
|
|
}
|
|
|
|
var body: some View {
|
|
Group {
|
|
if(pressed) {
|
|
Text(label)
|
|
.textStyle(weight: .semibold, color: .white, size: 15)
|
|
.padding([.leading,.trailing],13.8)
|
|
.padding([.top,.bottom], 7)
|
|
.background(AllInColors.lightPurpleColor)
|
|
.clipShape(Capsule())
|
|
} else {
|
|
Text(label)
|
|
.textStyle(weight: .regular, color: AllInColors.grey800Color, size: 15)
|
|
.padding([.leading,.trailing], 15)
|
|
.padding([.top,.bottom], 7)
|
|
.background(AllInColors.underComponentBackgroundColor)
|
|
.clipShape(Capsule())
|
|
.overlay(
|
|
RoundedRectangle(cornerRadius: 20)
|
|
.stroke(AllInColors.delimiterGrey, lineWidth: 1)
|
|
)
|
|
}
|
|
}
|
|
.onTapGesture() {
|
|
pressed.toggle()
|
|
if(pressed) {
|
|
viewModel.filters.insert(filter)
|
|
} else {
|
|
viewModel.filters.remove(filter)
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|