WIP
This commit is contained in:
@@ -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]
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user