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.
DouShouQi_App/DouShouQi_App/DouShouQi_App/Components/Player/ShowAllPlayer.swift

88 lines
3.2 KiB

//
// ShowAllPlayer.swift
// DouShouQi_App
//
// Created by Nathan Verdier on 14/06/2024.
//
import SwiftUI
struct ShowAllPlayer: View {
@State private var isShowingSheet = false
@Binding var currentShowingSheet: Bool
@ObservedObject var currentPlayer: PlayerVM
@ObservedObject var otherPlayer: PlayerVM
@ObservedObject var playersVM: PlayersVM
var body: some View {
VStack(alignment: .leading, spacing: 20) {
Text("Choose a player:")
.font(.title2)
.fontWeight(.bold)
.padding(.leading)
.padding(.top, 20)
List {
ForEach($playersVM.players, id: \.self) { playerVM in
if otherPlayer.player.name != playerVM.player.wrappedValue.name {
Button(action: {
if currentPlayer.player.name == playerVM.player.wrappedValue.name {
currentPlayer.player = Player(name: "IA", photo: "")
} else {
currentPlayer.player = playerVM.player.wrappedValue
}
self.currentShowingSheet = false
}) {
HStack {
Image(systemName: "person.fill")
.resizable()
.frame(width: 30, height: 30)
.foregroundColor(.blue)
.padding(.trailing, 10)
Text(playerVM.player.name.wrappedValue)
.font(.headline)
.foregroundColor(.primary)
Spacer()
if currentPlayer.player.name == playerVM.player.wrappedValue.name {
Image(systemName: "checkmark.circle.fill")
.foregroundColor(.green)
}
}
.padding()
.background(Color(.systemGray6))
.cornerRadius(10)
.shadow(radius: 2)
}
}
}
}
.listStyle(InsetGroupedListStyle())
Button(action: {
self.isShowingSheet = true
}) {
HStack {
Image(systemName: "plus.circle.fill")
.foregroundColor(.white)
Text("Add a player")
.font(.headline)
.foregroundColor(.white)
}
.padding()
.frame(maxWidth: .infinity)
.background(Color.red)
.cornerRadius(10)
.padding(.horizontal)
}
.padding(.bottom, 20)
.sheet(isPresented: $isShowingSheet) {
AddPlayerView(isPresented: $isShowingSheet, playersVM: playersVM)
}
}
.background(Color(.systemGroupedBackground))
.edgesIgnoringSafeArea(.all)
}
}