WIP
This commit is contained in:
15
Werkout_ios/Views/AccountView.swift
Normal file
15
Werkout_ios/Views/AccountView.swift
Normal file
@@ -0,0 +1,15 @@
|
||||
//
|
||||
// AccountView.swift
|
||||
// Werkout_ios
|
||||
//
|
||||
// Created by Trey Tartt on 6/15/23.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import SwiftUI
|
||||
|
||||
struct AccountView: View {
|
||||
var body: some View {
|
||||
Text("account view")
|
||||
}
|
||||
}
|
||||
68
Werkout_ios/Views/AllWorkoutsView.swift
Normal file
68
Werkout_ios/Views/AllWorkoutsView.swift
Normal file
@@ -0,0 +1,68 @@
|
||||
//
|
||||
// AllWorkoutsView.swift
|
||||
// Werkout_ios
|
||||
//
|
||||
// Created by Trey Tartt on 6/15/23.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import SwiftUI
|
||||
|
||||
struct AllWorkoutsView: View {
|
||||
@State var workouts: [Workout]?
|
||||
@EnvironmentObject var bridgeModule: BridgeModule
|
||||
@State private var showWorkoutDetail = false
|
||||
@State private var selectedWorkout: Workout? {
|
||||
didSet {
|
||||
showWorkoutDetail = true
|
||||
bridgeModule.currentWorkout = self.selectedWorkout
|
||||
}
|
||||
}
|
||||
|
||||
var body: some View {
|
||||
ZStack {
|
||||
if let workouts = workouts {
|
||||
List {
|
||||
ForEach(workouts, id:\.name) { workout in
|
||||
VStack {
|
||||
Text(workout.name)
|
||||
Text(workout.description ?? "")
|
||||
}
|
||||
.onTapGesture {
|
||||
selectedItem(workout: workout)
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
Text("no workouts")
|
||||
}
|
||||
}.onAppear{
|
||||
testParse()
|
||||
}
|
||||
.sheet(isPresented: $showWorkoutDetail) {
|
||||
if let selectedWorkout = selectedWorkout {
|
||||
let viewModel = WorkoutDetailViewModel(workout: selectedWorkout)
|
||||
WorkoutDetailView(viewModel: viewModel)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func selectedItem(workout: Workout) {
|
||||
selectedWorkout = PreviewWorkout.workout()
|
||||
}
|
||||
|
||||
func testParse() {
|
||||
if let filepath = Bundle.main.path(forResource: "AllWorkouts", ofType: "json") {
|
||||
do {
|
||||
let data = try Data(NSData(contentsOfFile: filepath))
|
||||
let workout = try JSONDecoder().decode([Workout].self, from: data)
|
||||
self.workouts = workout
|
||||
} catch {
|
||||
print(error)
|
||||
fatalError()
|
||||
}
|
||||
} else {
|
||||
fatalError()
|
||||
}
|
||||
}
|
||||
}
|
||||
75
Werkout_ios/Views/CreateWorkoutView.swift
Normal file
75
Werkout_ios/Views/CreateWorkoutView.swift
Normal file
@@ -0,0 +1,75 @@
|
||||
//
|
||||
// CreateWorkout.swift
|
||||
// Werkout_ios
|
||||
//
|
||||
// Created by Trey Tartt on 6/15/23.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import SwiftUI
|
||||
|
||||
struct CreateWorkoutView: View {
|
||||
@State var exercises: [ExerciseExercise]?
|
||||
@State var equipment: [Equipment]?
|
||||
@State var muscles: [Muscle]?
|
||||
@EnvironmentObject var bridgeModule: BridgeModule
|
||||
|
||||
var body: some View {
|
||||
VStack {
|
||||
Text("exercises count: \(exercises?.count ?? -1)")
|
||||
Text("equipment count: \(equipment?.count ?? -1)")
|
||||
Text("muscles count: \(muscles?.count ?? -1)")
|
||||
}
|
||||
.onAppear{
|
||||
parseMuscle()
|
||||
parseEquipment()
|
||||
parseExercises()
|
||||
}
|
||||
}
|
||||
|
||||
func parseExercises() {
|
||||
if let filepath = Bundle.main.path(forResource: "Exercises", ofType: "json") {
|
||||
do {
|
||||
let data = try Data(NSData(contentsOfFile: filepath))
|
||||
let workout = try JSONDecoder().decode([ExerciseExercise].self, from: data)
|
||||
self.exercises = workout
|
||||
} catch {
|
||||
print(error)
|
||||
fatalError()
|
||||
}
|
||||
} else {
|
||||
fatalError()
|
||||
}
|
||||
}
|
||||
|
||||
func parseEquipment() {
|
||||
if let filepath = Bundle.main.path(forResource: "Equipment", ofType: "json") {
|
||||
do {
|
||||
let data = try Data(NSData(contentsOfFile: filepath))
|
||||
let workout = try JSONDecoder().decode([Equipment].self, from: data)
|
||||
self.equipment = workout
|
||||
} catch {
|
||||
print(error)
|
||||
fatalError()
|
||||
}
|
||||
} else {
|
||||
fatalError()
|
||||
}
|
||||
}
|
||||
|
||||
func parseMuscle() {
|
||||
if let filepath = Bundle.main.path(forResource: "AllMuscles", ofType: "json") {
|
||||
do {
|
||||
let data = try Data(NSData(contentsOfFile: filepath))
|
||||
let workout = try JSONDecoder().decode([Muscle].self, from: data)
|
||||
self.muscles = workout
|
||||
} catch {
|
||||
print(error)
|
||||
fatalError()
|
||||
}
|
||||
} else {
|
||||
fatalError()
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -20,24 +20,6 @@ struct MainView: View {
|
||||
} else {
|
||||
Text("no workout selected")
|
||||
}
|
||||
}.onAppear{
|
||||
testParse()
|
||||
}
|
||||
}
|
||||
|
||||
func testParse() {
|
||||
if let filepath = Bundle.main.path(forResource: "WorkoutOne", ofType: "json") {
|
||||
do {
|
||||
let data = try Data(NSData(contentsOfFile: filepath))
|
||||
let workout = try JSONDecoder().decode(Workout.self, from: data)
|
||||
bridgeModule.currentWorkout = workout
|
||||
self.workout = workout
|
||||
} catch {
|
||||
print(error)
|
||||
fatalError()
|
||||
}
|
||||
} else {
|
||||
fatalError()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ import SwiftUI
|
||||
struct WorkoutDetailView: View {
|
||||
@ObservedObject var viewModel: WorkoutDetailViewModel
|
||||
@EnvironmentObject var bridgeModule: BridgeModule
|
||||
@Environment(\.dismiss) var dismiss
|
||||
|
||||
@State var selectedIdx = -1 {
|
||||
didSet {
|
||||
@@ -19,6 +20,21 @@ struct WorkoutDetailView: View {
|
||||
|
||||
var body: some View {
|
||||
VStack {
|
||||
HStack {
|
||||
Button("i dont want to do this", action: {
|
||||
bridgeModule.currentWorkout = nil
|
||||
dismiss()
|
||||
})
|
||||
.frame(maxWidth: .infinity, maxHeight: .infinity)
|
||||
.background(.red)
|
||||
|
||||
Button("ohhh lets do it", action: {
|
||||
runItemAt(idx: 0)
|
||||
})
|
||||
.frame(maxWidth: .infinity, maxHeight: .infinity)
|
||||
.background(.green)
|
||||
}
|
||||
.frame(height: 88)
|
||||
List() {
|
||||
ForEach(viewModel.workout.exercisesSortedByCreated_at.indices, id: \.self) { i in
|
||||
let obj = viewModel.workout.exercisesSortedByCreated_at[i]
|
||||
@@ -39,6 +55,7 @@ struct WorkoutDetailView: View {
|
||||
selectedIdx += 1
|
||||
}
|
||||
}
|
||||
.interactiveDismissDisabled()
|
||||
}
|
||||
|
||||
func runItemAt(idx: Int) {
|
||||
|
||||
Reference in New Issue
Block a user