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.
72 lines
2.4 KiB
72 lines
2.4 KiB
//
|
|
// LoserRoundView.swift
|
|
// PadelClub
|
|
//
|
|
// Created by Razmig Sarkissian on 04/04/2024.
|
|
//
|
|
|
|
import SwiftUI
|
|
|
|
struct LoserRoundView: View {
|
|
@EnvironmentObject var dataStore: DataStore
|
|
let loserRounds: [Round]
|
|
@State private var isEditingTournamentSeed: Bool = false
|
|
|
|
private func _roundDisabled() -> Bool {
|
|
loserRounds.allSatisfy({ $0.isDisabled() })
|
|
}
|
|
|
|
var body: some View {
|
|
List {
|
|
if isEditingTournamentSeed == true {
|
|
_editingView()
|
|
}
|
|
|
|
ForEach(loserRounds) { loserRound in
|
|
if isEditingTournamentSeed || loserRound.isDisabled() == false {
|
|
Section {
|
|
let matches = isEditingTournamentSeed ? loserRound.playedMatches() : loserRound.playedMatches().filter({ $0.disabled == false })
|
|
ForEach(matches) { match in
|
|
MatchRowView(match: match, matchViewStyle: .sectionedStandardStyle)
|
|
.overlay {
|
|
if match.disabled /*&& isEditingTournamentSeed*/ {
|
|
Image(systemName: "xmark")
|
|
.resizable()
|
|
.scaledToFit()
|
|
.opacity(0.8)
|
|
}
|
|
}
|
|
.disabled(match.disabled)
|
|
}
|
|
} header: {
|
|
Text(loserRound.roundTitle(.wide))
|
|
}
|
|
}
|
|
}
|
|
}
|
|
.headerProminence(.increased)
|
|
.toolbar {
|
|
ToolbarItem(placement: .topBarTrailing) {
|
|
Button(isEditingTournamentSeed == true ? "Valider" : "Modifier") {
|
|
isEditingTournamentSeed.toggle()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
private func _editingView() -> some View {
|
|
if _roundDisabled() {
|
|
RowButtonView("Jouer ce tour", role: .destructive) {
|
|
loserRounds.forEach { round in
|
|
round.enableRound()
|
|
}
|
|
}
|
|
} else {
|
|
RowButtonView("Ne pas jouer ce tour", role: .destructive) {
|
|
loserRounds.forEach { round in
|
|
round.disableRound()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|