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.
Apple/Sources/AllInApp/AllIn/Components/ParticipateButton.swift

73 lines
2.3 KiB

//
// ParticipateButton.swift
// AllIn
//
// Created by Lucas Delanier on 15/01/2024.
//
import SwiftUI
import Model
struct ParticipateButton: View {
@Binding var isOpen : Bool
@Binding var isParticapatedOpen: Bool
var bet: Bet?
var isDisabled: Bool {
guard bet?.author != AppStateContainer.shared.user?.username else { return true }
if let betType = bet?.status {
switch betType {
case .inProgress:
return false
default:
return true
}
} else {
return true
}
}
var body: some View {
Button {
isOpen = true
isParticapatedOpen = true
} label: {
Text("bet_participate")
.font(.system(size: 27))
.fontWeight(.semibold)
.frame(maxWidth: .infinity).padding(10)
.multilineTextAlignment(.center)
.overlay {
switch isDisabled {
case true:
AllInColors.grey700Color.frame(width: 170)
.mask(
Text("bet_participate")
.font(.system(size: 27))
.fontWeight(.semibold)
.frame(maxWidth: .infinity).padding(10)
)
case false:
AllInColors.primaryGradient.frame(width: 170)
.mask(
Text("bet_participate")
.font(.system(size: 27))
.fontWeight(.semibold)
.frame(maxWidth: .infinity).padding(10)
)
}
}
.accentColor(AllInColors.componentBackgroundColor)
.background(isDisabled ? AllInColors.delimiterGrey.opacity(0.5):AllInColors.whiteColor)
.buttonStyle(.borderedProminent).cornerRadius(4.0)
.overlay(
RoundedRectangle(cornerRadius: 12).stroke(AllInColors.delimiterGrey, lineWidth: 1)
)
}
.disabled(isDisabled)
}
}