feat(02-02): wire deleteLog through App.jsx and WorkoutPage to ExerciseCard

- Added deleteLog function in App.jsx: calls DELETE /api/logs and removes entry from local logs state
- Passed onDeleteSet={deleteLog} to WorkoutPage in workout view render
- Updated WorkoutPage function signature to accept onDeleteSet prop
- Passed onDeleteSet through to each ExerciseCard (ExerciseCard already calls it in handleDeleteSet)
- Non-logged sets (404 from backend) silently ignored via catch block
This commit is contained in:
2026-02-21 18:44:58 +01:00
parent f6501d7e9d
commit 4cb842e6fa
2 changed files with 25 additions and 1 deletions
+23
View File
@@ -90,6 +90,28 @@ function App() {
} }
} }
const deleteLog = async (programExerciseId, setNumber) => {
try {
await fetch(`${API_URL}/logs`, {
method: 'DELETE',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
user_id: userId,
program_exercise_id: programExerciseId,
date: today,
set_number: setNumber
})
})
// Remove from local logs state
setLogs(prev => ({
...prev,
[programExerciseId]: (prev[programExerciseId] || []).filter(l => l.set_number !== setNumber)
}))
} catch (err) {
console.error('Failed to delete log:', err)
}
}
const startWorkout = async (day) => { const startWorkout = async (day) => {
await fetchProgram() // Ensure program is loaded await fetchProgram() // Ensure program is loaded
setSelectedDay(day) setSelectedDay(day)
@@ -135,6 +157,7 @@ function App() {
week={currentWeek} week={currentWeek}
logs={logs} logs={logs}
onLogSet={logSet} onLogSet={logSet}
onDeleteSet={deleteLog}
onBack={() => setView('dashboard')} onBack={() => setView('dashboard')}
fetchProgression={fetchProgression} fetchProgression={fetchProgression}
/> />
+2 -1
View File
@@ -47,7 +47,7 @@ function getMuscleGroups(exercises) {
return Array.from(groups) return Array.from(groups)
} }
function WorkoutPage({ day, week, logs, onLogSet, onBack, fetchProgression }) { function WorkoutPage({ day, week, logs, onLogSet, onDeleteSet, onBack, fetchProgression }) {
const [progressions, setProgressions] = useState({}) const [progressions, setProgressions] = useState({})
const [expandedExercise, setExpandedExercise] = useState(null) const [expandedExercise, setExpandedExercise] = useState(null)
const [warmupDone, setWarmupDone] = useState(false) const [warmupDone, setWarmupDone] = useState(false)
@@ -239,6 +239,7 @@ function WorkoutPage({ day, week, logs, onLogSet, onBack, fetchProgression }) {
expandedExercise === exercise.id ? null : exercise.id expandedExercise === exercise.id ? null : exercise.id
)} )}
onLogSet={onLogSet} onLogSet={onLogSet}
onDeleteSet={onDeleteSet}
/> />
))} ))}
</section> </section>