This commit is contained in:
Trey t
2023-06-15 21:35:42 -05:00
parent bf58ca5167
commit c2ea70305c
16 changed files with 54630 additions and 78 deletions

View 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")
}
}

View 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()
}
}
}

View 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()
}
}
}

View File

@@ -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()
}
}
}

View File

@@ -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) {