Update(CollectionPlayer): création de composant

pull/1/head
Louis DUFOUR 12 months ago
parent c2230d4e62
commit 066881f9b9

@ -0,0 +1,20 @@
struct PlayerListView: View {
@ObservedObject var viewModel: PlayerViewModel
var body: some View {
NavigationStack {
List(viewModel.players, id: \.id) { player in
PlayerProfileView(player: player)
.padding(.vertical, 5)
}
.navigationTitle("Top Players")
}
}
}
struct PlayerListView_Previews: PreviewProvider {
static var previews: some View {
PlayerListView(viewModel: PlayerViewModel())
}
}

@ -1,5 +1,3 @@
import SwiftUI
struct IgaSwiatekView: View {
var body: some View {
ZStack {
@ -17,43 +15,12 @@ struct IgaSwiatekView: View {
.foregroundColor(.white)
}
HStack {
VStack(alignment: .leading, spacing: 10) {
Text("Height")
.fontWeight(.semibold)
Text("5' 9\"")
}
Spacer()
VStack(alignment: .leading, spacing: 10) {
Text("Age")
.fontWeight(.semibold)
Text("22")
}
}
.foregroundColor(.white)
HStack {
VStack(alignment: .leading, spacing: 10) {
Text("Plays")
.fontWeight(.semibold)
Text("Right-Handed")
}
Spacer()
VStack(alignment: .leading, spacing: 10) {
Text("Birthplace")
.fontWeight(.semibold)
Text("Warsaw, Poland")
}
}
.foregroundColor(.white)
InfoRow(title: "Height", value: "5' 9\"")
InfoRow(title: "Age", value: "22")
InfoRow(title: "Plays", value: "Right-Handed")
InfoRow(title: "Birthplace", value: "Warsaw, Poland")
}
.padding()
}
}
}
struct IgaSwiatekView_Previews: PreviewProvider {
static var previews: some View {
IgaSwiatekView()
}
}

@ -0,0 +1,16 @@
struct InfoRow: View {
var title: String
var value: String
var body: some View {
HStack {
VStack(alignment: .leading, spacing: 10) {
Text(title)
.fontWeight(.semibold)
.foregroundColor(.white)
Text(value)
}
Spacer()
}
}
}

@ -1,35 +1,29 @@
import SwiftUI
struct PlayerProfileView: View {
var player: Player
var body: some View {
HStack(spacing: 15) {
Text("1")
Text("\(player.rank)")
.font(.largeTitle)
.fontWeight(.bold)
.foregroundColor(.purple)
Image("iga_swiatek") // Assurez-vous d'ajouter l'image dans Assets.xcassets
Image(player.image)
.resizable()
.aspectRatio(contentMode: .fill)
.frame(width: 50, height: 50)
.clipShape(Circle())
Text("IGA SWIATEK")
Text(player.name.uppercased())
.font(.title2)
.fontWeight(.semibold)
Spacer()
Label("POL", systemImage: "flag.fill")
Label(player.country, systemImage: "flag.fill")
.labelStyle(.titleAndIcon)
.foregroundColor(.red)
}
.padding(.horizontal)
}
}
struct PlayerProfileView_Previews: PreviewProvider {
static var previews: some View {
PlayerProfileView()
}
}

Loading…
Cancel
Save