WIP
This commit is contained in:
103
Werkout_ios/Views/CompletedWorkout/CompletedWorkoutView.swift
Normal file
103
Werkout_ios/Views/CompletedWorkout/CompletedWorkoutView.swift
Normal file
@@ -0,0 +1,103 @@
|
||||
//
|
||||
// CompletedWorkoutView.swift
|
||||
// Werkout_ios
|
||||
//
|
||||
// Created by Trey Tartt on 6/22/23.
|
||||
//
|
||||
|
||||
import SwiftUI
|
||||
|
||||
struct CompletedWorkoutView: View {
|
||||
@ObservedObject var bridgeModule = BridgeModule.shared
|
||||
var postData: [String: Any]
|
||||
let workout: Workout
|
||||
@Environment(\.dismiss) var dismiss
|
||||
|
||||
@State var difficulty: Float = 0
|
||||
@State var notes: String = ""
|
||||
let completedWorkoutDismissed: ((Bool) -> Void)?
|
||||
|
||||
var body: some View {
|
||||
VStack {
|
||||
Text(workout.name)
|
||||
.frame(maxWidth: .infinity, alignment: .leading)
|
||||
.font(.title3)
|
||||
.padding(.top
|
||||
)
|
||||
if let desc = workout.description {
|
||||
Text(desc)
|
||||
.frame(maxWidth: .infinity, alignment: .leading)
|
||||
.font(.body)
|
||||
.padding(.top)
|
||||
|
||||
}
|
||||
|
||||
Divider()
|
||||
|
||||
Text("how hard was this shit")
|
||||
|
||||
HStack {
|
||||
Text("easy")
|
||||
Spacer()
|
||||
Text("Death")
|
||||
}
|
||||
|
||||
Slider(value: $difficulty, in: 0...5, step: 1)
|
||||
|
||||
Divider()
|
||||
|
||||
TextField("Notes", text: $notes)
|
||||
|
||||
// Divider()
|
||||
|
||||
Spacer()
|
||||
|
||||
Button("Upload", action: {
|
||||
upload(postBody: postData)
|
||||
})
|
||||
.frame(maxWidth: .infinity, alignment: .center)
|
||||
.frame(height: 44)
|
||||
.foregroundColor(.blue)
|
||||
.background(.yellow)
|
||||
.cornerRadius(8)
|
||||
.padding()
|
||||
.frame(maxWidth: .infinity)
|
||||
}
|
||||
.padding([.leading, .trailing])
|
||||
}
|
||||
|
||||
func upload(postBody: [String: Any]) {
|
||||
var _postBody = postBody
|
||||
_postBody["difficulty"] = difficulty
|
||||
_postBody["notes"] = notes
|
||||
|
||||
|
||||
CompleteWorkoutFetchable(postData: _postBody).fetch(completion: { result in
|
||||
switch result {
|
||||
case .success(_):
|
||||
DispatchQueue.main.async {
|
||||
bridgeModule.resetCurrentWorkout()
|
||||
dismiss()
|
||||
completedWorkoutDismissed?(true)
|
||||
}
|
||||
case .failure(let failure):
|
||||
print(failure)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
//struct CompletedWorkoutView_Previews: PreviewProvider {
|
||||
// static let postBody = [
|
||||
// "difficulty": 1,
|
||||
// "workout_start_time": Date().timeFormatForUpload,
|
||||
// "workout": 1,
|
||||
// "total_time": 140
|
||||
// ] as [String : Any]
|
||||
//
|
||||
// static let workout = PreviewWorkout.workout()
|
||||
//
|
||||
// static var previews: some View {
|
||||
// CompletedWorkoutView(postData: CompletedWorkoutView_Previews.postBody, workout: workout)
|
||||
// }
|
||||
//}
|
||||
Reference in New Issue
Block a user