diff --git a/CollectionPlayer.swift b/CollectionPlayer.swift new file mode 100644 index 0000000..fbfa193 --- /dev/null +++ b/CollectionPlayer.swift @@ -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()) + } +} diff --git a/InfoDetailView.swift b/InfoDetailView.swift index 09cd3a7..342ac4b 100644 --- a/InfoDetailView.swift +++ b/InfoDetailView.swift @@ -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() - } -} diff --git a/InfoTextView.swift b/InfoTextView.swift new file mode 100644 index 0000000..05946a6 --- /dev/null +++ b/InfoTextView.swift @@ -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() + } + } +} \ No newline at end of file diff --git a/ItemCollectionPlayer.swift b/ItemCollectionPlayer.swift new file mode 100644 index 0000000..ccd9018 --- /dev/null +++ b/ItemCollectionPlayer.swift @@ -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) + } +}