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 SwiftUI
struct AllWorkoutsView: View {
enum MainViews: Int, CaseIterable {
case AllWorkout = 0
case MyWorkouts
var title: String {
switch self {
case .AllWorkout:
return "All Workouts"
case .MyWorkouts:
return "Planned Workouts"
}
enum MainViewTypes: Int, CaseIterable {
case AllWorkout = 0
case MyWorkouts
var title: String {
switch self {
case .AllWorkout:
return "All Workouts"
case .MyWorkouts:
return "Planned Workouts"
}
}
}
struct AllWorkoutsView: View {
@State var isUpdating = false
@State var workouts: [Workout]?
var bridgeModule = BridgeModule.shared
@State public var needsUpdating: Bool = true
@ObservedObject var dataStore = DataStore.shared
@State private var showWorkoutDetail = false
@@ -44,7 +46,7 @@ struct AllWorkoutsView: View {
}
@State private var showLoginView = false
@State private var selectedSegment: MainViews = .AllWorkout
@State private var selectedSegment: MainViewTypes = .AllWorkout
@State var selectedDate: Date = Date()
let pub = NotificationCenter.default.publisher(for: NSNotification.Name("CreatedNewWorkout"))
@@ -53,17 +55,14 @@ struct AllWorkoutsView: View {
ZStack {
if let workouts = workouts {
VStack {
Picker("", selection: $selectedSegment) {
ForEach(MainViews.allCases, id: \.self) { viewType in
Text(viewType.title)
}
}
.pickerStyle(.segmented)
.padding()
AllWorkoutPickerView(mainViews: MainViewTypes.allCases,
selectedSegment: $selectedSegment,
showCurrentWorkout: {
selectedWorkout = bridgeModule.currentWorkout
})
switch selectedSegment {
case .AllWorkout:
if isUpdating {
ProgressView()
.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 {
@State var searchString: String = ""
let workouts: [Workout]

View File

@@ -74,7 +74,6 @@ struct WorkoutDetailView: View {
dismiss()
})
}
.interactiveDismissDisabled()
}
}
.onChange(of: bridgeModule.currentExercise, perform: { newValue in
@@ -96,6 +95,24 @@ struct WorkoutDetailView: View {
}
})
.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 = {
if let workoutData = createWorkoutData() {
presentedSheet = .completedWorkout(workoutData)