From 910b17342f8acdb1eda4fcca04a56cda146e9283 Mon Sep 17 00:00:00 2001 From: infinicaretech Date: Thu, 2 Apr 2026 16:12:22 +0000 Subject: [PATCH] fix: unwrap API response objects (workout, meal_plan, shopping) API returns { workout: {...} }, { meal_plan: {...} }, { shopping: {...} } but frontend was using the wrapper object directly, causing all fields (week, days, daily_calories, etc.) to be undefined. Co-Authored-By: Claude Opus 4.6 (1M context) --- src/public/index.html | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/public/index.html b/src/public/index.html index d600b3c..ce356e7 100644 --- a/src/public/index.html +++ b/src/public/index.html @@ -2403,7 +2403,8 @@ async function loadDashboard() { await loadWorkout(); // Pre-load meal data to fill calorie stat card try { - mealData = await api('/api/program/meal'); + var mealRes = await api('/api/program/meal'); + mealData = mealRes.meal_plan || mealRes; if (mealData && mealData.daily_calories) { var calCard = document.getElementById('calorieStatCard'); if (calCard) { @@ -2498,7 +2499,8 @@ async function loadWorkout() { var el = document.getElementById('workoutTab'); el.innerHTML = '
Antrenman programi hazirlaniyor...
'; try { - workoutData = await api('/api/program/workout?week=' + currentWeek); + var res = await api('/api/program/workout?week=' + currentWeek); + workoutData = res.workout || res; renderWorkout(el); } catch (err) { el.innerHTML = '

' + err.message + '

'; @@ -2678,7 +2680,8 @@ async function loadMeal() { var el = document.getElementById('mealTab'); el.innerHTML = '
Beslenme plani hazirlaniyor...
'; try { - mealData = await api('/api/program/meal'); + var mealRes = await api('/api/program/meal'); + mealData = mealRes.meal_plan || mealRes; renderMeal(el); // Update calorie stat card if (mealData.daily_calories) { @@ -2806,7 +2809,8 @@ async function loadShopping() { var el = document.getElementById('shoppingTab'); el.innerHTML = '
Alisveris listesi hazirlaniyor...
'; try { - shoppingData = await api('/api/program/shopping'); + var shopRes = await api('/api/program/shopping'); + shoppingData = shopRes.shopping || shopRes; renderShopping(el); } catch (err) { el.innerHTML = '

' + err.message + '

'; @@ -2854,10 +2858,10 @@ async function loadTips() { try { // Tips are gathered from workout and meal data if (!workoutData) { - try { workoutData = await api('/api/program/workout?week=' + currentWeek); } catch(e) {} + try { var wr = await api('/api/program/workout?week=' + currentWeek); workoutData = wr.workout || wr; } catch(e) {} } if (!mealData) { - try { mealData = await api('/api/program/meal'); } catch(e) {} + try { var mr = await api('/api/program/meal'); mealData = mr.meal_plan || mr; } catch(e) {} } tipsData = true; renderTips(el);