{#if restTimer.active}
Rest Time
{formatTime(restTimer.timeLeft)}
restTimer.timeLeft += 30}>+30s
restTimer.timeLeft = Math.max(0, restTimer.timeLeft - 30)}>-30s
Skip
{/if}
Started: {currentSession.startTime.toLocaleTimeString()}
Cancel
Finish Workout
{#each currentSession.exercises as exercise, exerciseIndex}
Rest:
s
Set
Previous
Weight (kg)
Reps
RPE
Actions
{#each exercise.sets as set, setIndex}
{setIndex + 1}
{#if template?.exercises[exerciseIndex]?.sets[setIndex]} {@const prevSet = template.exercises[exerciseIndex].sets[setIndex]} {prevSet.weight || 0}kg × {prevSet.reps} {#if prevSet.rpe}@ {prevSet.rpe}{/if} {:else} - {/if}
{#if !set.completed}
markSetCompleted(exerciseIndex, setIndex)} disabled={!set.reps} > ✓
{:else}
✅
{/if} {#if exercise.sets.length > 1}
removeSet(exerciseIndex, setIndex)} > ✕
{/if}
{/each}
addSet(exerciseIndex)}> + Add Set
startRestTimer(exercise.restTime)} disabled={restTimer.active} > ⏱️ Start Timer ({formatTime(exercise.restTime)})
{/each}
➕ Add Exercise
Workout Notes: