wip
This commit is contained in:
@ -0,0 +1,36 @@
|
||||
//
|
||||
// ExerciseDoneCard.swift
|
||||
// Workouts
|
||||
//
|
||||
// Created by rzen on 7/23/25 at 4:29 PM.
|
||||
//
|
||||
// Copyright 2025 Rouslan Zenetl. All Rights Reserved.
|
||||
//
|
||||
|
||||
import SwiftUI
|
||||
|
||||
struct ExerciseDoneCard: View {
|
||||
let elapsedSeconds: Int
|
||||
let onComplete: () -> Void
|
||||
|
||||
var body: some View {
|
||||
VStack(spacing: 20) {
|
||||
Button(action: onComplete) {
|
||||
Text("Done in \(10 - elapsedSeconds)s")
|
||||
.font(.headline)
|
||||
.frame(maxWidth: .infinity)
|
||||
}
|
||||
.buttonStyle(.borderedProminent)
|
||||
.tint(.green)
|
||||
.padding(.horizontal)
|
||||
}
|
||||
.padding()
|
||||
}
|
||||
|
||||
private var timeFormatted: String {
|
||||
let minutes = elapsedSeconds / 60
|
||||
let seconds = elapsedSeconds % 60
|
||||
return String(format: "%02d:%02d", minutes, seconds)
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,55 @@
|
||||
//
|
||||
// ExerciseIntroView.swift
|
||||
// Workouts
|
||||
//
|
||||
// Created by rzen on 7/23/25 at 4:19 PM.
|
||||
//
|
||||
// Copyright 2025 Rouslan Zenetl. All Rights Reserved.
|
||||
//
|
||||
|
||||
import SwiftUI
|
||||
|
||||
struct ExerciseIntroCard: View {
|
||||
let log: WorkoutLog
|
||||
|
||||
var body: some View {
|
||||
VStack(alignment: .center, spacing: 16) {
|
||||
Text(log.exerciseName)
|
||||
.font(.title)
|
||||
.lineLimit(1)
|
||||
.minimumScaleFactor(0.5)
|
||||
.layoutPriority(1)
|
||||
|
||||
HStack(alignment: .bottom) {
|
||||
Text("\(log.weight)")
|
||||
Text("lbs")
|
||||
.fontWeight(.light)
|
||||
.padding([.trailing], 10)
|
||||
|
||||
Text("\(log.sets)")
|
||||
Text("×")
|
||||
.fontWeight(.light)
|
||||
Text("\(log.reps)")
|
||||
}
|
||||
.font(.title3)
|
||||
.lineLimit(1)
|
||||
.minimumScaleFactor(0.5)
|
||||
.layoutPriority(1)
|
||||
|
||||
Text(log.status?.name ?? "Not Started")
|
||||
.foregroundStyle(Color.accentColor)
|
||||
}
|
||||
.padding()
|
||||
|
||||
// VStack(spacing: 20) {
|
||||
// Text(title)
|
||||
// .font(.title)
|
||||
//
|
||||
// Text(elapsedSeconds.secondsFormatted)
|
||||
// .font(.system(size: 48, weight: .semibold, design: .monospaced))
|
||||
// .foregroundStyle(Color.accentColor)
|
||||
// }
|
||||
// .padding()
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,30 @@
|
||||
//
|
||||
// ExerciseRestCard.swift
|
||||
// Workouts
|
||||
//
|
||||
// Created by rzen on 7/23/25 at 4:28 PM.
|
||||
//
|
||||
// Copyright 2025 Rouslan Zenetl. All Rights Reserved.
|
||||
//
|
||||
|
||||
import SwiftUI
|
||||
|
||||
struct ExerciseRestCard: View {
|
||||
let elapsedSeconds: Int
|
||||
|
||||
var body: some View {
|
||||
VStack(spacing: 20) {
|
||||
Text("Resting for")
|
||||
.font(.title)
|
||||
.lineLimit(1)
|
||||
.minimumScaleFactor(0.5)
|
||||
.layoutPriority(1)
|
||||
|
||||
Text(elapsedSeconds.secondsFormatted)
|
||||
.font(.system(size: 48, weight: .semibold, design: .monospaced))
|
||||
.foregroundStyle(Color.green)
|
||||
}
|
||||
.padding()
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,28 @@
|
||||
//
|
||||
// ExerciseSetCard.swift
|
||||
// Workouts
|
||||
//
|
||||
// Created by rzen on 7/23/25 at 4:26 PM.
|
||||
//
|
||||
// Copyright 2025 Rouslan Zenetl. All Rights Reserved.
|
||||
//
|
||||
|
||||
import SwiftUI
|
||||
|
||||
struct ExerciseSetCard: View {
|
||||
let set: Int
|
||||
let elapsedSeconds: Int
|
||||
|
||||
var body: some View {
|
||||
VStack(spacing: 20) {
|
||||
Text("Set \(set)")
|
||||
.font(.title)
|
||||
|
||||
Text(elapsedSeconds.secondsFormatted)
|
||||
.font(.system(size: 48, weight: .semibold, design: .monospaced))
|
||||
.foregroundStyle(Color.accentColor)
|
||||
}
|
||||
.padding()
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user