fix: unwrap API response objects (workout, meal_plan, shopping)
Some checks failed
CI/CD - Build, Push & Deploy / Build & Push Docker Image (push) Has been cancelled
CI/CD - Build, Push & Deploy / Update GitOps Manifest (push) Has been cancelled

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:
2026-04-02 16:12:22 +00:00
parent 1d3c6d1caa
commit 910b17342f

View File

@@ -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);