This commit is contained in:
2025-08-08 21:09:11 -04:00
parent 2f044c3d9c
commit 7bcc5d656c
38 changed files with 776 additions and 159 deletions

View File

@ -18,7 +18,7 @@ struct WorkoutLogCardView: View {
.font(.headline)
.lineLimit(1)
Text(log.status?.name ?? "Not Started")
Text(getStatusText(for: log))
.font(.caption)
.foregroundStyle(Color.accentColor)
@ -31,4 +31,41 @@ struct WorkoutLogCardView: View {
}
}
}
private func getStatusText(for log: WorkoutLog) -> String {
guard let status = log.status else {
return "Not Started"
}
if status == .inProgress, let currentStateIndex = log.currentStateIndex {
let currentSet = getCurrentSetNumber(stateIndex: currentStateIndex, totalSets: log.sets)
if currentSet > 0 {
return "In Progress, Set #\(currentSet)"
}
}
return status.name
}
private func getCurrentSetNumber(stateIndex: Int, totalSets: Int) -> Int {
// Exercise states are structured as: intro(0) set1(1) rest1(2) set2(3) rest2(4) ... done
// For each set number n, set state index = 2n-1, rest state index = 2n
if stateIndex <= 0 {
return 0 // intro or invalid
}
// Check if we're in a rest state (even indices > 0)
let isRestState = stateIndex > 0 && stateIndex % 2 == 0
if isRestState {
// During rest, show the next set number
let nextSetNumber = (stateIndex / 2) + 1
return min(nextSetNumber, totalSets)
} else {
// During set, show current set number
let currentSetNumber = (stateIndex + 1) / 2
return min(currentSetNumber, totalSets)
}
}
}