Test relationships

multistore
Laurent 2 years ago
parent 32e27af1a7
commit c3c82e805b
  1. 14
      PadelClub.xcodeproj/project.pbxproj
  2. 23
      PadelClub/Views/ClubView.swift
  3. 28
      PadelClub/Views/ContentView.swift

@ -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 = "<group>"; };
C4A47D5D2B6D38EC00ADC637 /* DataStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DataStore.swift; sourceTree = "<group>"; };
C4A47D622B6D3D6500ADC637 /* Club.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Club.swift; sourceTree = "<group>"; };
C4A47D732B72881F00ADC637 /* ClubView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClubView.swift; sourceTree = "<group>"; };
/* 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 = "<group>";
};
C4A47D722B72881500ADC637 /* Views */ = {
isa = PBXGroup;
children = (
C425D4022B6D249D002A7B48 /* ContentView.swift */,
C4A47D732B72881F00ADC637 /* ClubView.swift */,
);
path = Views;
sourceTree = "<group>";
};
/* 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 */,

@ -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"))
}

@ -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() {
Loading…
Cancel
Save