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 { struct IgaSwiatekView: View {
var body: some View { var body: some View {
ZStack { ZStack {
@ -17,43 +15,12 @@ struct IgaSwiatekView: View {
.foregroundColor(.white) .foregroundColor(.white)
} }
HStack { InfoRow(title: "Height", value: "5' 9\"")
VStack(alignment: .leading, spacing: 10) { InfoRow(title: "Age", value: "22")
Text("Height") InfoRow(title: "Plays", value: "Right-Handed")
.fontWeight(.semibold) InfoRow(title: "Birthplace", value: "Warsaw, Poland")
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)
} }
.padding() .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 { struct PlayerProfileView: View {
var player: Player
var body: some View { var body: some View {
HStack(spacing: 15) { HStack(spacing: 15) {
Text("1") Text("\(player.rank)")
.font(.largeTitle) .font(.largeTitle)
.fontWeight(.bold) .fontWeight(.bold)
.foregroundColor(.purple) .foregroundColor(.purple)
Image("iga_swiatek") // Assurez-vous d'ajouter l'image dans Assets.xcassets Image(player.image)
.resizable() .resizable()
.aspectRatio(contentMode: .fill) .aspectRatio(contentMode: .fill)
.frame(width: 50, height: 50) .frame(width: 50, height: 50)
.clipShape(Circle()) .clipShape(Circle())
Text("IGA SWIATEK") Text(player.name.uppercased())
.font(.title2) .font(.title2)
.fontWeight(.semibold) .fontWeight(.semibold)
Spacer() Spacer()
Label("POL", systemImage: "flag.fill") Label(player.country, systemImage: "flag.fill")
.labelStyle(.titleAndIcon) .labelStyle(.titleAndIcon)
.foregroundColor(.red) .foregroundColor(.red)
} }
.padding(.horizontal) .padding(.horizontal)
} }
} }
struct PlayerProfileView_Previews: PreviewProvider {
static var previews: some View {
PlayerProfileView()
}
}

Loading…
Cancel
Save