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();
|
await loadWorkout();
|
||||||
// Pre-load meal data to fill calorie stat card
|
// Pre-load meal data to fill calorie stat card
|
||||||
try {
|
try {
|
||||||
mealData = await api('/api/program/meal');
|
var mealRes = await api('/api/program/meal');
|
||||||
|
mealData = mealRes.meal_plan || mealRes;
|
||||||
if (mealData && mealData.daily_calories) {
|
if (mealData && mealData.daily_calories) {
|
||||||
var calCard = document.getElementById('calorieStatCard');
|
var calCard = document.getElementById('calorieStatCard');
|
||||||
if (calCard) {
|
if (calCard) {
|
||||||
@@ -2498,7 +2499,8 @@ async function loadWorkout() {
|
|||||||
var el = document.getElementById('workoutTab');
|
var el = document.getElementById('workoutTab');
|
||||||
el.innerHTML = '<div class="loading"><div class="spinner"></div>Antrenman programi hazirlaniyor...</div>';
|
el.innerHTML = '<div class="loading"><div class="spinner"></div>Antrenman programi hazirlaniyor...</div>';
|
||||||
try {
|
try {
|
||||||
workoutData = await api('/api/program/workout?week=' + currentWeek);
|
var res = await api('/api/program/workout?week=' + currentWeek);
|
||||||
|
workoutData = res.workout || res;
|
||||||
renderWorkout(el);
|
renderWorkout(el);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
el.innerHTML = '<div class="content-card"><p class="error-msg">' + err.message + '</p></div>';
|
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');
|
var el = document.getElementById('mealTab');
|
||||||
el.innerHTML = '<div class="loading"><div class="spinner"></div>Beslenme plani hazirlaniyor...</div>';
|
el.innerHTML = '<div class="loading"><div class="spinner"></div>Beslenme plani hazirlaniyor...</div>';
|
||||||
try {
|
try {
|
||||||
mealData = await api('/api/program/meal');
|
var mealRes = await api('/api/program/meal');
|
||||||
|
mealData = mealRes.meal_plan || mealRes;
|
||||||
renderMeal(el);
|
renderMeal(el);
|
||||||
// Update calorie stat card
|
// Update calorie stat card
|
||||||
if (mealData.daily_calories) {
|
if (mealData.daily_calories) {
|
||||||
@@ -2806,7 +2809,8 @@ async function loadShopping() {
|
|||||||
var el = document.getElementById('shoppingTab');
|
var el = document.getElementById('shoppingTab');
|
||||||
el.innerHTML = '<div class="loading"><div class="spinner"></div>Alisveris listesi hazirlaniyor...</div>';
|
el.innerHTML = '<div class="loading"><div class="spinner"></div>Alisveris listesi hazirlaniyor...</div>';
|
||||||
try {
|
try {
|
||||||
shoppingData = await api('/api/program/shopping');
|
var shopRes = await api('/api/program/shopping');
|
||||||
|
shoppingData = shopRes.shopping || shopRes;
|
||||||
renderShopping(el);
|
renderShopping(el);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
el.innerHTML = '<div class="content-card"><p class="error-msg">' + err.message + '</p></div>';
|
el.innerHTML = '<div class="content-card"><p class="error-msg">' + err.message + '</p></div>';
|
||||||
@@ -2854,10 +2858,10 @@ async function loadTips() {
|
|||||||
try {
|
try {
|
||||||
// Tips are gathered from workout and meal data
|
// Tips are gathered from workout and meal data
|
||||||
if (!workoutData) {
|
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) {
|
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;
|
tipsData = true;
|
||||||
renderTips(el);
|
renderTips(el);
|
||||||
|
|||||||
Reference in New Issue
Block a user