CollectionPlayer #1
Merged
louis.dufour
merged 2 commits from CollectionPlayer
into dev
12 months ago
@ -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())
|
||||
}
|
||||
}
|
@ -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()
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,29 @@
|
||||
struct PlayerProfileView: View {
|
||||
var player: Player
|
||||
|
||||
var body: some View {
|
||||
HStack(spacing: 15) {
|
||||
Text("\(player.rank)")
|
||||
.font(.largeTitle)
|
||||
.fontWeight(.bold)
|
||||
.foregroundColor(.purple)
|
||||
|
||||
Image(player.image)
|
||||
.resizable()
|
||||
.aspectRatio(contentMode: .fill)
|
||||
.frame(width: 50, height: 50)
|
||||
.clipShape(Circle())
|
||||
|
||||
Text(player.name.uppercased())
|
||||
.font(.title2)
|
||||
.fontWeight(.semibold)
|
||||
|
||||
Spacer()
|
||||
|
||||
Label(player.country, systemImage: "flag.fill")
|
||||
.labelStyle(.titleAndIcon)
|
||||
.foregroundColor(.red)
|
||||
}
|
||||
.padding(.horizontal)
|
||||
}
|
||||
}
|
Loading…
Reference in new issue