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) <noreply@anthropic.com>
This commit is contained in:
@@ -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 = '<div class="loading"><div class="spinner"></div>Antrenman programi hazirlaniyor...</div>';
|
||||
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 = '<div class="content-card"><p class="error-msg">' + err.message + '</p></div>';
|
||||
@@ -2678,7 +2680,8 @@ async function loadMeal() {
|
||||
var el = document.getElementById('mealTab');
|
||||
el.innerHTML = '<div class="loading"><div class="spinner"></div>Beslenme plani hazirlaniyor...</div>';
|
||||
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 = '<div class="loading"><div class="spinner"></div>Alisveris listesi hazirlaniyor...</div>';
|
||||
try {
|
||||
shoppingData = await api('/api/program/shopping');
|
||||
var shopRes = await api('/api/program/shopping');
|
||||
shoppingData = shopRes.shopping || shopRes;
|
||||
renderShopping(el);
|
||||
} catch (err) {
|
||||
el.innerHTML = '<div class="content-card"><p class="error-msg">' + err.message + '</p></div>';
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user