From c3c82e805b79e6fcbb89ef06612e265acbaed966 Mon Sep 17 00:00:00 2001 From: Laurent Date: Tue, 6 Feb 2024 16:34:01 +0100 Subject: [PATCH] Test relationships --- PadelClub.xcodeproj/project.pbxproj | 14 ++++++++++++- PadelClub/Views/ClubView.swift | 23 ++++++++++++++++++++ PadelClub/{ => Views}/ContentView.swift | 28 +++++++++++++++---------- 3 files changed, 53 insertions(+), 12 deletions(-) create mode 100644 PadelClub/Views/ClubView.swift rename PadelClub/{ => Views}/ContentView.swift (54%) diff --git a/PadelClub.xcodeproj/project.pbxproj b/PadelClub.xcodeproj/project.pbxproj index c270d80..e12083b 100644 --- a/PadelClub.xcodeproj/project.pbxproj +++ b/PadelClub.xcodeproj/project.pbxproj @@ -18,6 +18,7 @@ C4A47D5A2B6D383C00ADC637 /* Tournament.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4A47D592B6D383C00ADC637 /* Tournament.swift */; }; C4A47D5E2B6D38EC00ADC637 /* DataStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4A47D5D2B6D38EC00ADC637 /* DataStore.swift */; }; C4A47D632B6D3D6500ADC637 /* Club.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4A47D622B6D3D6500ADC637 /* Club.swift */; }; + C4A47D742B72881F00ADC637 /* ClubView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4A47D732B72881F00ADC637 /* ClubView.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -66,6 +67,7 @@ C4A47D592B6D383C00ADC637 /* Tournament.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Tournament.swift; sourceTree = ""; }; C4A47D5D2B6D38EC00ADC637 /* DataStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DataStore.swift; sourceTree = ""; }; C4A47D622B6D3D6500ADC637 /* Club.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Club.swift; sourceTree = ""; }; + C4A47D732B72881F00ADC637 /* ClubView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClubView.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -120,7 +122,7 @@ children = ( C425D44E2B6D24E1002A7B48 /* LeStorage.xcodeproj */, C425D4002B6D249D002A7B48 /* PadelClubApp.swift */, - C425D4022B6D249D002A7B48 /* ContentView.swift */, + C4A47D722B72881500ADC637 /* Views */, C4A47D5F2B6D3B2D00ADC637 /* Data */, C425D4042B6D249E002A7B48 /* Assets.xcassets */, C425D4062B6D249E002A7B48 /* Preview Content */, @@ -179,6 +181,15 @@ path = Data; sourceTree = ""; }; + C4A47D722B72881500ADC637 /* Views */ = { + isa = PBXGroup; + children = ( + C425D4022B6D249D002A7B48 /* ContentView.swift */, + C4A47D732B72881F00ADC637 /* ClubView.swift */, + ); + path = Views; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -332,6 +343,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + C4A47D742B72881F00ADC637 /* ClubView.swift in Sources */, C4A47D5A2B6D383C00ADC637 /* Tournament.swift in Sources */, C4A47D5E2B6D38EC00ADC637 /* DataStore.swift in Sources */, C4A47D632B6D3D6500ADC637 /* Club.swift in Sources */, diff --git a/PadelClub/Views/ClubView.swift b/PadelClub/Views/ClubView.swift new file mode 100644 index 0000000..44ebdd9 --- /dev/null +++ b/PadelClub/Views/ClubView.swift @@ -0,0 +1,23 @@ +// +// ClubView.swift +// PadelClub +// +// Created by Laurent Morvillier on 06/02/2024. +// + +import SwiftUI + +struct ClubView: View { + + var club: Club + + var body: some View { + List(club.tournaments) { tournament in + Text(tournament.name) + }.navigationTitle(club.name) + } +} + +#Preview { + ClubView(club: Club(name: "AUC")) +} diff --git a/PadelClub/ContentView.swift b/PadelClub/Views/ContentView.swift similarity index 54% rename from PadelClub/ContentView.swift rename to PadelClub/Views/ContentView.swift index 76b4231..3fa501a 100644 --- a/PadelClub/ContentView.swift +++ b/PadelClub/Views/ContentView.swift @@ -12,25 +12,31 @@ struct ContentView: View { @StateObject var dataStore = DataStore() - @State var uuid = UUID() - var body: some View { - VStack { - - Image(systemName: "globe") - .imageScale(.large) - .foregroundStyle(.tint) - Text("Hello, world!") + NavigationStack { - List(self.dataStore.clubs) { club in - Text(club.name) + VStack { + + Image(systemName: "globe") + .imageScale(.large) + .foregroundStyle(.tint) + Text("Hello, world!") + + List(self.dataStore.clubs) { club in + + NavigationLink { + ClubView(club: club) + } label: { + Text(club.name) + } + } } Button("add") { self._add() }.padding() .buttonStyle(.bordered) - }.id(uuid) + } } func _add() {