68 lines
1.8 KiB
Swift
68 lines
1.8 KiB
Swift
//
|
|
// AccountView.swift
|
|
// Werkout_ios
|
|
//
|
|
// Created by Trey Tartt on 6/15/23.
|
|
//
|
|
|
|
import Foundation
|
|
import SwiftUI
|
|
|
|
struct AccountView: View {
|
|
@State var completedWorkouts: [CompletedWorkout]?
|
|
@ObservedObject var userStore = UserStore.shared
|
|
|
|
var body: some View {
|
|
VStack {
|
|
if let registeredUser = userStore.registeredUser {
|
|
VStack(spacing: 10) {
|
|
if let nickName = registeredUser.nickName {
|
|
Text(nickName)
|
|
.font(.title)
|
|
}
|
|
|
|
HStack {
|
|
Text(registeredUser.firstName ?? "-")
|
|
Text(registeredUser.lastName ?? "-")
|
|
}
|
|
|
|
if let email = registeredUser.email {
|
|
Text(email)
|
|
}
|
|
}
|
|
}
|
|
|
|
if let completedWorkouts = completedWorkouts {
|
|
Text("\(completedWorkouts.count)")
|
|
}
|
|
Spacer()
|
|
}
|
|
.onAppear{
|
|
// fetchCompletedWorkouts()
|
|
}
|
|
}
|
|
|
|
func fetchCompletedWorkouts() {
|
|
CompletedWorkoutFetchable().fetch(completion: { result in
|
|
switch result {
|
|
case .success(let model):
|
|
completedWorkouts = model
|
|
case .failure(let failure):
|
|
fatalError(failure.localizedDescription)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
struct AccountView_Previews: PreviewProvider {
|
|
static let userStore = UserStore.shared
|
|
static let completedWorkouts = PreviewWorkout.parseCompletedWorkouts()
|
|
|
|
static var previews: some View {
|
|
AccountView(completedWorkouts: completedWorkouts)
|
|
.onAppear{
|
|
userStore.setFakeUser()
|
|
}
|
|
}
|
|
}
|