This commit is contained in:
Trey t
2023-07-05 17:50:33 -05:00
parent 52ab089c12
commit 4bcfd6a7fa
2 changed files with 69 additions and 24 deletions

View File

@@ -8,26 +8,28 @@
import Foundation import Foundation
import SwiftUI import SwiftUI
struct AllWorkoutsView: View { enum MainViewTypes: Int, CaseIterable {
enum MainViews: Int, CaseIterable { case AllWorkout = 0
case AllWorkout = 0 case MyWorkouts
case MyWorkouts
var title: String {
var title: String { switch self {
switch self {
case .AllWorkout:
case .AllWorkout: return "All Workouts"
return "All Workouts" case .MyWorkouts:
case .MyWorkouts: return "Planned Workouts"
return "Planned Workouts"
}
} }
} }
}
struct AllWorkoutsView: View {
@State var isUpdating = false @State var isUpdating = false
@State var workouts: [Workout]? @State var workouts: [Workout]?
var bridgeModule = BridgeModule.shared var bridgeModule = BridgeModule.shared
@State public var needsUpdating: Bool = true @State public var needsUpdating: Bool = true
@ObservedObject var dataStore = DataStore.shared @ObservedObject var dataStore = DataStore.shared
@State private var showWorkoutDetail = false @State private var showWorkoutDetail = false
@@ -44,7 +46,7 @@ struct AllWorkoutsView: View {
} }
@State private var showLoginView = false @State private var showLoginView = false
@State private var selectedSegment: MainViews = .AllWorkout @State private var selectedSegment: MainViewTypes = .AllWorkout
@State var selectedDate: Date = Date() @State var selectedDate: Date = Date()
let pub = NotificationCenter.default.publisher(for: NSNotification.Name("CreatedNewWorkout")) let pub = NotificationCenter.default.publisher(for: NSNotification.Name("CreatedNewWorkout"))
@@ -53,17 +55,14 @@ struct AllWorkoutsView: View {
ZStack { ZStack {
if let workouts = workouts { if let workouts = workouts {
VStack { VStack {
Picker("", selection: $selectedSegment) { AllWorkoutPickerView(mainViews: MainViewTypes.allCases,
ForEach(MainViews.allCases, id: \.self) { viewType in selectedSegment: $selectedSegment,
Text(viewType.title) showCurrentWorkout: {
} selectedWorkout = bridgeModule.currentWorkout
} })
.pickerStyle(.segmented)
.padding()
switch selectedSegment { switch selectedSegment {
case .AllWorkout: case .AllWorkout:
if isUpdating { if isUpdating {
ProgressView() ProgressView()
.progressViewStyle(.circular) .progressViewStyle(.circular)
@@ -178,6 +177,35 @@ struct AllWorkoutsView: View {
} }
} }
struct AllWorkoutPickerView: View {
var mainViews: [MainViewTypes]
@Binding var selectedSegment: MainViewTypes
@StateObject var bridgeModule = BridgeModule.shared
var showCurrentWorkout: (() -> Void)
var body: some View {
HStack {
Picker("", selection: $selectedSegment) {
ForEach(mainViews, id: \.self) { viewType in
Text(viewType.title)
}
}
.pickerStyle(.segmented)
.padding()
if bridgeModule.isInWorkout {
Button(action: {
showCurrentWorkout()
}, label: {
Image(systemName: "figure.strengthtraining.traditional")
.padding(.trailing)
})
.tint(.blue)
}
}
}
}
struct AllWorkoutsListView: View { struct AllWorkoutsListView: View {
@State var searchString: String = "" @State var searchString: String = ""
let workouts: [Workout] let workouts: [Workout]

View File

@@ -74,7 +74,6 @@ struct WorkoutDetailView: View {
dismiss() dismiss()
}) })
} }
.interactiveDismissDisabled()
} }
} }
.onChange(of: bridgeModule.currentExercise, perform: { newValue in .onChange(of: bridgeModule.currentExercise, perform: { newValue in
@@ -96,6 +95,24 @@ struct WorkoutDetailView: View {
} }
}) })
.onAppear{ .onAppear{
var _url: URL?
if let currentExercise = bridgeModule.currentExercise {
if showNSFWVideos {
let viddd = currentExercise.exercise.nsfwVideoURL
if let url = URL(string: BaseURLs.currentBaseURL + viddd) {
_url = url
}
} else {
let viddd = currentExercise.exercise.videoURL
if let url = URL(string: BaseURLs.currentBaseURL + viddd) {
_url = url
}
}
if let __url = _url {
avPlayer = AVPlayer(url: __url)
avPlayer.play()
}
}
bridgeModule.completedWorkout = { bridgeModule.completedWorkout = {
if let workoutData = createWorkoutData() { if let workoutData = createWorkoutData() {
presentedSheet = .completedWorkout(workoutData) presentedSheet = .completedWorkout(workoutData)