add ActiveWorkoutSession logic, refactor Home, add additional sample data, add isDebug
This commit is contained in:
@@ -36,6 +36,6 @@ struct AddWorkout: View {
|
||||
#Preview {
|
||||
Color.clear
|
||||
.sheet(isPresented: .constant(true)) {
|
||||
AddWorkout(workout: Workout.sampleData)
|
||||
AddWorkout(workout: Workout.sampleData.first!)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,7 +45,7 @@ struct WorkoutDetail: View {
|
||||
AddItemButton(label: "Exercise", action: presentWorkoutItemLibrarySheet)
|
||||
}
|
||||
}
|
||||
.navigationBarTitle("\(workout.name)")
|
||||
.navigationTitle("\(workout.name)")
|
||||
.toolbar {
|
||||
// TODO: Add proper Sharing for workouts.
|
||||
ToolbarItem() { ShareLink(item: URL(filePath: "felixfoertsch.de")!) }
|
||||
@@ -88,14 +88,14 @@ struct WorkoutDetail: View {
|
||||
|
||||
#Preview {
|
||||
NavigationStack {
|
||||
WorkoutDetail(workout: Workout.sampleData)
|
||||
WorkoutDetail(workout: Workout.sampleData.first!)
|
||||
.modelContainer(SampleData.shared.modelContainer)
|
||||
}
|
||||
}
|
||||
|
||||
#Preview("Debug") {
|
||||
TabView {
|
||||
WorkoutDetail(workout: Workout.sampleData)
|
||||
WorkoutDetail(workout: Workout.sampleData.first!)
|
||||
.tabItem {
|
||||
Image(systemName: "figure.run.square.stack")
|
||||
Text("Workouts")
|
||||
|
||||
@@ -57,14 +57,14 @@ struct WorkoutIconSelector: View {
|
||||
}
|
||||
.overlay {
|
||||
if filteredIcons.isEmpty {
|
||||
ContentUnavailableView.search
|
||||
ContentUnavailableView.search(text: searchText)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#Preview {
|
||||
NavigationView() {
|
||||
WorkoutIconSelector(workout: Workout.sampleData)
|
||||
NavigationStack() {
|
||||
WorkoutIconSelector(workout: Workout.sampleData.first!)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -56,11 +56,11 @@ struct WorkoutItemLibrarySheet: View {
|
||||
}
|
||||
|
||||
#Preview("With Sample Data") {
|
||||
WorkoutItemLibrarySheet(workout: Workout.sampleData)
|
||||
WorkoutItemLibrarySheet(workout: Workout.sampleData.first!)
|
||||
.modelContainer(SampleData.shared.modelContainer)
|
||||
}
|
||||
|
||||
#Preview("Empty Database") {
|
||||
WorkoutItemLibrarySheet(workout: Workout.sampleData)
|
||||
WorkoutItemLibrarySheet(workout: Workout.sampleData.first!)
|
||||
.modelContainer(for: Exercise.self, inMemory: true)
|
||||
}
|
||||
|
||||
@@ -19,15 +19,13 @@ struct WorkoutLibrary: View {
|
||||
|
||||
@State private var searchText: String = ""
|
||||
var filteredItems: [Workout] {
|
||||
if searchText.isEmpty {
|
||||
return workouts
|
||||
} else {
|
||||
return workouts.filter { $0.name.localizedCaseInsensitiveContains(searchText) }
|
||||
if searchText.isEmpty { return workouts }
|
||||
else { return workouts.filter { $0.name.localizedCaseInsensitiveContains(searchText) }
|
||||
}
|
||||
}
|
||||
|
||||
var body: some View {
|
||||
NavigationView {
|
||||
|
||||
Group {
|
||||
List {
|
||||
ForEach(filteredItems) { workout in
|
||||
@@ -53,13 +51,12 @@ struct WorkoutLibrary: View {
|
||||
}
|
||||
.searchable(text: $searchText)
|
||||
}
|
||||
.navigationBarTitle("Workouts")
|
||||
.navigationTitle("Workouts")
|
||||
.toolbar {
|
||||
ToolbarItem() {
|
||||
EditButton()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private func addWorkout() {
|
||||
@@ -71,7 +68,6 @@ struct WorkoutLibrary: View {
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: Brauchen wir das?
|
||||
private func save(workout: Workout) {
|
||||
withAnimation {
|
||||
newWorkout.name = newWorkoutName
|
||||
@@ -94,12 +90,16 @@ struct WorkoutLibrary: View {
|
||||
}
|
||||
|
||||
#Preview("With Sample Data") {
|
||||
WorkoutLibrary()
|
||||
NavigationStack {
|
||||
WorkoutLibrary()
|
||||
}
|
||||
.modelContainer(SampleData.shared.modelContainer)
|
||||
}
|
||||
|
||||
#Preview("Empty Database") {
|
||||
WorkoutLibrary()
|
||||
NavigationStack {
|
||||
WorkoutLibrary()
|
||||
}
|
||||
.modelContainer(for: Workout.self, inMemory: true)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user