Hidden field values do not messup logged set
This commit is contained in:
@@ -121,14 +121,31 @@ const Tracker: React.FC<TrackerProps> = ({ userId, userWeight, activeSession, ac
|
||||
setLastSet(set);
|
||||
|
||||
if (set) {
|
||||
if (set.weight != null) setWeight(set.weight.toString());
|
||||
if (set.reps != null) setReps(set.reps.toString());
|
||||
if (set.durationSeconds != null) setDuration(set.durationSeconds.toString());
|
||||
if (set.distanceMeters != null) setDistance(set.distanceMeters.toString());
|
||||
if (set.height != null) setHeight(set.height.toString());
|
||||
setWeight(set.weight?.toString() || '');
|
||||
setReps(set.reps?.toString() || '');
|
||||
setDuration(set.durationSeconds?.toString() || '');
|
||||
setDistance(set.distanceMeters?.toString() || '');
|
||||
setHeight(set.height?.toString() || '');
|
||||
} else {
|
||||
setWeight(''); setReps(''); setDuration(''); setDistance(''); setHeight('');
|
||||
}
|
||||
|
||||
// Clear fields not relevant to the selected exercise type
|
||||
if (selectedExercise.type !== ExerciseType.STRENGTH && selectedExercise.type !== ExerciseType.BODYWEIGHT) {
|
||||
setWeight('');
|
||||
}
|
||||
if (selectedExercise.type !== ExerciseType.STRENGTH && selectedExercise.type !== ExerciseType.BODYWEIGHT && selectedExercise.type !== ExerciseType.PLYOMETRIC) {
|
||||
setReps('');
|
||||
}
|
||||
if (selectedExercise.type !== ExerciseType.CARDIO && selectedExercise.type !== ExerciseType.STATIC) {
|
||||
setDuration('');
|
||||
}
|
||||
if (selectedExercise.type !== ExerciseType.CARDIO && selectedExercise.type !== ExerciseType.LONG_JUMP) {
|
||||
setDistance('');
|
||||
}
|
||||
if (selectedExercise.type !== ExerciseType.HIGH_JUMP) {
|
||||
setHeight('');
|
||||
}
|
||||
}
|
||||
};
|
||||
updateSelection();
|
||||
@@ -158,14 +175,37 @@ const Tracker: React.FC<TrackerProps> = ({ userId, userWeight, activeSession, ac
|
||||
exerciseName: selectedExercise.name,
|
||||
type: selectedExercise.type,
|
||||
timestamp: Date.now(),
|
||||
...(weight && { weight: parseFloat(weight) }),
|
||||
...(reps && { reps: parseInt(reps) }),
|
||||
...(duration && { durationSeconds: parseInt(duration) }),
|
||||
...(distance && { distanceMeters: parseFloat(distance) }),
|
||||
...(height && { height: parseFloat(height) }),
|
||||
...((selectedExercise.type === ExerciseType.BODYWEIGHT || selectedExercise.type === ExerciseType.STATIC) && { bodyWeightPercentage: parseFloat(bwPercentage) || 100 })
|
||||
};
|
||||
|
||||
switch (selectedExercise.type) {
|
||||
case ExerciseType.STRENGTH:
|
||||
if (weight) newSet.weight = parseFloat(weight);
|
||||
if (reps) newSet.reps = parseInt(reps);
|
||||
break;
|
||||
case ExerciseType.BODYWEIGHT:
|
||||
if (weight) newSet.weight = parseFloat(weight);
|
||||
if (reps) newSet.reps = parseInt(reps);
|
||||
newSet.bodyWeightPercentage = parseFloat(bwPercentage) || 100;
|
||||
break;
|
||||
case ExerciseType.CARDIO:
|
||||
if (duration) newSet.durationSeconds = parseInt(duration);
|
||||
if (distance) newSet.distanceMeters = parseFloat(distance);
|
||||
break;
|
||||
case ExerciseType.STATIC:
|
||||
if (duration) newSet.durationSeconds = parseInt(duration);
|
||||
newSet.bodyWeightPercentage = parseFloat(bwPercentage) || 100;
|
||||
break;
|
||||
case ExerciseType.HIGH_JUMP:
|
||||
if (height) newSet.height = parseFloat(height);
|
||||
break;
|
||||
case ExerciseType.LONG_JUMP:
|
||||
if (distance) newSet.distanceMeters = parseFloat(distance);
|
||||
break;
|
||||
case ExerciseType.PLYOMETRIC:
|
||||
if (reps) newSet.reps = parseInt(reps);
|
||||
break;
|
||||
}
|
||||
|
||||
onSetAdded(newSet);
|
||||
|
||||
if (activePlan) {
|
||||
@@ -564,11 +604,27 @@ const Tracker: React.FC<TrackerProps> = ({ userId, userWeight, activeSession, ac
|
||||
<div>
|
||||
<div className="text-base font-medium text-on-surface">{set.exerciseName}</div>
|
||||
<div className="text-sm text-on-surface-variant">
|
||||
{set.weight != null && `${set.weight}kg `}
|
||||
{set.reps != null && `x ${set.reps}`}
|
||||
{set.distanceMeters != null && `${set.distanceMeters}m`}
|
||||
{set.durationSeconds != null && `${set.durationSeconds}s`}
|
||||
{set.height != null && `${set.height}cm`}
|
||||
{set.type === ExerciseType.STRENGTH &&
|
||||
`${set.weight ? `${set.weight}kg` : ''} ${set.reps ? `x ${set.reps}` : ''}`.trim()
|
||||
}
|
||||
{set.type === ExerciseType.BODYWEIGHT &&
|
||||
`${set.weight ? `${set.weight}kg` : ''} ${set.reps ? `x ${set.reps}` : ''}`.trim()
|
||||
}
|
||||
{set.type === ExerciseType.CARDIO &&
|
||||
`${set.durationSeconds ? `${set.durationSeconds}s` : ''} ${set.distanceMeters ? `/ ${set.distanceMeters}m` : ''}`.trim()
|
||||
}
|
||||
{set.type === ExerciseType.STATIC &&
|
||||
`${set.durationSeconds ? `${set.durationSeconds}s` : ''}`.trim()
|
||||
}
|
||||
{set.type === ExerciseType.HIGH_JUMP &&
|
||||
`${set.height ? `${set.height}cm` : ''}`.trim()
|
||||
}
|
||||
{set.type === ExerciseType.LONG_JUMP &&
|
||||
`${set.distanceMeters ? `${set.distanceMeters}m` : ''}`.trim()
|
||||
}
|
||||
{set.type === ExerciseType.PLYOMETRIC &&
|
||||
`${set.reps ? `x ${set.reps}` : ''}`.trim()
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
|
||||
Reference in New Issue
Block a user