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