From aebd576af84cdb7837513d2c4e8b286fcecd722b Mon Sep 17 00:00:00 2001 From: Louis DUFOUR Date: Mon, 13 May 2024 10:41:33 +0200 Subject: [PATCH 1/3] ADD(dev): info view --- InfoDetailView.swift | 59 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 InfoDetailView.swift diff --git a/InfoDetailView.swift b/InfoDetailView.swift new file mode 100644 index 0000000..09cd3a7 --- /dev/null +++ b/InfoDetailView.swift @@ -0,0 +1,59 @@ +import SwiftUI + +struct IgaSwiatekView: View { + var body: some View { + ZStack { + Color.purple.edgesIgnoringSafeArea(.all) + VStack(alignment: .leading, spacing: 20) { + Text("Iga Swiatek") + .font(.largeTitle) + .fontWeight(.bold) + .foregroundColor(.white) + + HStack { + Image(systemName: "flag.fill") + .foregroundColor(.white) + Text("POLAND") + .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) + } + .padding() + } + } +} + +struct IgaSwiatekView_Previews: PreviewProvider { + static var previews: some View { + IgaSwiatekView() + } +} From c2230d4e6271f207629a9d7c4e00b62649d7d8cc Mon Sep 17 00:00:00 2001 From: Louis DUFOUR Date: Mon, 13 May 2024 10:50:14 +0200 Subject: [PATCH 2/3] ADD(CollectionPlayer): itemCollection --- ItemCollectionPlayer.swift | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 ItemCollectionPlayer.swift diff --git a/ItemCollectionPlayer.swift b/ItemCollectionPlayer.swift new file mode 100644 index 0000000..701c66a --- /dev/null +++ b/ItemCollectionPlayer.swift @@ -0,0 +1,35 @@ +import SwiftUI + +struct PlayerProfileView: View { + var body: some View { + HStack(spacing: 15) { + Text("1") + .font(.largeTitle) + .fontWeight(.bold) + .foregroundColor(.purple) + + Image("iga_swiatek") // Assurez-vous d'ajouter l'image dans Assets.xcassets + .resizable() + .aspectRatio(contentMode: .fill) + .frame(width: 50, height: 50) + .clipShape(Circle()) + + Text("IGA SWIATEK") + .font(.title2) + .fontWeight(.semibold) + + Spacer() + + Label("POL", systemImage: "flag.fill") + .labelStyle(.titleAndIcon) + .foregroundColor(.red) + } + .padding(.horizontal) + } +} + +struct PlayerProfileView_Previews: PreviewProvider { + static var previews: some View { + PlayerProfileView() + } +} From 066881f9b96d80d84f7a7e9cfc61152999c39041 Mon Sep 17 00:00:00 2001 From: "louis.dufour" Date: Mon, 13 May 2024 11:21:16 +0200 Subject: [PATCH 3/3] =?UTF-8?q?Update(CollectionPlayer):=20cr=C3=A9ation?= =?UTF-8?q?=20de=20composant?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CollectionPlayer.swift | 20 +++++++++++++++++++ InfoDetailView.swift | 41 ++++---------------------------------- InfoTextView.swift | 16 +++++++++++++++ ItemCollectionPlayer.swift | 18 ++++++----------- 4 files changed, 46 insertions(+), 49 deletions(-) create mode 100644 CollectionPlayer.swift create mode 100644 InfoTextView.swift 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 index 701c66a..ccd9018 100644 --- a/ItemCollectionPlayer.swift +++ b/ItemCollectionPlayer.swift @@ -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() - } -}