ifa-bah-esi / script.js
blade035's picture
import React, { useState } from 'react';
f392c21 verified
// Data Structure
const nutritionPlan = {
seasonal: {
title: "Mevsimsel Beslenme (Sonbahar/Kış)",
focus: "Kan şekerini dengelemek ve metabolizmayı canlandırmak.",
schedule: [
{ time: "07:00 (Hızlı Kahvaltı)", item: "Yulaf Lapası: 4 yk yulaf ezmesi, 1 bardak süt/su, 1/2 elma rendesi, 1 çk tarçın, 3 tam ceviz. (Seni 12:30'a kadar tok tutar)." },
{ time: "07:15 (Metabolizma Gücü)", item: "Zencefil-Limon Suyu: 1 bardak ılık suya yarım limon ve taze rendelenmiş zencefil." },
{ time: "12:30 (İş Yeri Öğle Yemeği)", item: "Bol Proteinli Salata: Yanında götürdüğün 1 kutu ton balığı VEYA haşlanmış tavuk göğsü + Koca bir kase mevsim yeşilliği (Roka, tere, marul). Yağı: Zeytinyağı ve bol limon." },
{ time: "16:00 (Kritik Ara Öğün)", item: "Açlık Krizini Önleyici: 1 şişe sade kefir (Kolesterol için) VEYA 1 avuç sarı leblebi + Sade Türk kahvesi (Kan şekerini tutar)." },
{ time: "19:00 (Akşam Yemeği)", item: "Izgara Mevsim Balığı (Lüfer, Hamsi, Palamut) VEYA Hindi Fümeli Salata + Yanında mutlaka Fırınlanmış Kök Sebzeler (Pancar, Havuç, Kereviz)." },
{ time: "21:00 (Karaciğer Desteği)", item: "Yatmadan Önce: 1 fincan Devedikeni Tohumu Çayı veya Papatya Çayı." }
],
rules: ["Dışarıdan yemek yok.", "Günde 3 litre su.", "İşlenmiş et ve şeker sıfır."]
},
pharmacy: {
title: "Senin Doğal Eczanen (Nokta Atışı)",
focus: "Tahlil sonuçlarına (Karaciğer, Kolesterol, Şeker) özel bitkisel çözümler.",
sections: [
{
title: "Yüksek ALT (Karaciğer Yağlanması) İçin",
icon: "leaf",
color: "green",
items: [
"Devedikeni Tohumu: Aktardan al. Sabah kahvaltıdan önce 1 tatlı kaşığı tohumu çiğne veya çayını yap. Karaciğer hücrelerini onaran 'Silymarin' içerir.",
"Enginar (Taze veya Konserve): Haftada en az 2 kez tüket. Karaciğerin en iyi dostudur.",
"Zerdeçal (Altın Macun): 1 çk zerdeçal + 1 çk zeytinyağı + az karabiber. Bunu her gün salatana veya yemeğine kat. Güçlü bir iltihap sökücüdür."
]
},
{
title: "Yüksek Kolesterol ve Trigliserid İçin",
icon: "heart",
color: "red",
items: [
"Keten Tohumu (Taze Çekilmiş): Her sabah yulaf lapanın içine 1 yemek kaşığı. Bitkisel Omega-3'tür, damarları temizler.",
"Yulaf Ezmesi: İçerdiği 'Beta-Glukan' lifi, kötü kolesterolü (LDL) sünger gibi emer ve atar.",
"Nar (Mevsimi!): Her gün yarım nar. Güçlü antioksidandır, damar sertliğini önler.",
"Sarımsak: Her akşam yemeğinde 1-2 diş çiğ sarımsak (ezerek) tüket. Doğal tansiyon ve kolesterol ilacıdır."
]
},
{
title: "HbA1c: 5.9 (Prediyabet) İçin",
icon: "droplet",
color: "blue",
items: [
"Tarçın (Çubuk veya Toz): Kan şekerini dengelemede en etkili baharattır. Gün boyu içtiğin suya 1 adet çubuk tarçın at.",
"Çemen Otu Tohumu: Geceden 1 bardak suya 1 çk tohum at, sabah aç karnına o suyu iç. İnsülin duyarlılığını artırır.",
"Elma Sirkesi (Organik): Yemeklerden önce 1 bardak suya 1 yk sirke. Yemeğin şeker yükünü azaltır."
]
},
{
title: "Genel İltihap (Bel Fıtığı) İçin",
icon: "zap",
color: "orange",
items: [
"Zencefil (Taze): En güçlü doğal ağrı kesici ve iltihap gidericidir. Her sabah çayına veya suyuna rendele.",
"Kuşburnu (Mevsimi!): C vitamini ve anti-inflamatuar bileşen deposu. Şekersiz çayını iç.",
"Isırgan Otu Çayı: Vücuttaki ödemi ve iltihabı atar."
]
}
]
}
};
const exercisePlan = {
morning: {
title: "Sabah: Omurga Uyandırma (10 Dk)",
description: "06:50 - 07:00 arası. Yavaş, nazik ve kontrollü. Asla zorlama.",
duration: "10 Dakika",
exercises: [
{ name: "1. Kedi-İnek (Cat-Cow)", rep: "2 Dakika", detail: "Emekleme pozisyonu. Yavaşça sırtı kamburlaştır (nefes ver), beli çukurlaştır (nefes al). Omurgayı ısıtır." },
{ name: "2. Çocuk Pozu (Child's Pose)", rep: "2 Dakika", detail: "Dizlerinin üzerine otur, alnını yere koy, kolları ileri uzat. Fıtık olan bölgeyi rahatlatır, esnetir." },
{ name: "3. Rotasyonel Esneme (Yatarak)", rep: "3 Dakika", detail: "Sırtüstü yat, dizler bükülü. Dizleri yavaşça sağa devir (kafa sola), 30 sn bekle. Sonra sola devir (kafa sağa)." },
{ name: "4. Pelvic Tilt (Bel Bastırma)", rep: "3 Dakika", detail: "Sırtüstü yat. Bel boşluğunu yavaşça yere bastır, 5 sn tut, bırak. Sadece çekirdek kasları uyandırır." }
]
},
evening: {
title: "Akşam: Asıl Güçlenme (20 Dk)",
description: "18:45 - 19:05 arası (Yemekten Önce). Bu asıl Pilates programıdır. Beli koruyan kasları güçlendirir.",
duration: "20 Dakika",
exercises: [
{ name: "1. Isınma (Pelvic Tilt)", rep: "2 Dakika", detail: "Sabahki gibi, ama şimdi daha ritmik." },
{ name: "2. Single Leg Slide", rep: "3 Dakika", detail: "Sırtüstü yat, beli sabitle. Bir bacağını topuktan yavaşça ileri uzat ve çek. Bel yerden kalkmamalı." },
{ name: "3. Dead Bug (Başlangıç)", rep: "3 Dakika", detail: "Sırtüstü yat, bacaklar 90 derece havada. Sadece bir ayağını yere dokundur ve çek. Sonra diğeri." },
{ name: "4. Köprü (Bridge)", rep: "3 Dakika", detail: "Sırtüstü yat. Kalçayı kontrollüce kaldır, 3 saniye sık ve yavaşça (omurları tek tek) indir. Kalça ve sırt gücü." },
{ name: "5. Bird-Dog", rep: "4 Dakika", detail: "Emekleme pozisyonu. Zıt kol ve zıt bacağı (çok yavaş) uzat, 2 sn tut, merkeze dön. Denge ve derin sırt kasları." },
{ name: "6. Clamshell (İstiridye)", rep: "3 Dakika", detail: "Yan yat. Dizler bükülü. Üstteki dizi yavaşça aç-kapa. Kalça stabilizasyonu (bele binen yükü azaltır)." },
{ name: "7. Soğuma (Çocuk Pozu)", rep: "2 Dakika", detail: "Bitir ve dinlen." }
]
}
};
// DOM Elements
let activeTab = 'nutrition';
let activeNutritionSubTab = 'seasonal';
// Initialize
document.addEventListener('DOMContentLoaded', function() {
initializeTabs();
renderContent();
});
function initializeTabs() {
// Main tabs
document.getElementById('nutrition-tab').addEventListener('click', () => switchTab('nutrition'));
document.getElementById('exercise-tab').addEventListener('click', () => switchTab('exercise'));
// Sub tabs
document.getElementById('seasonal-subtab').addEventListener('click', () => switchNutritionSubTab('seasonal'));
document.getElementById('pharmacy-subtab').addEventListener('click', () => switchNutritionSubTab('pharmacy'));
}
function switchTab(tabName) {
activeTab = tabName;
// Update button styles
document.querySelectorAll('.tab-button').forEach(btn => {
btn.classList.remove('active');
if (btn.id === `${tabName}-tab`) {
btn.classList.add('active');
}
});
// Update content visibility
document.querySelectorAll('.tab-content').forEach(content => {
content.classList.remove('active');
});
document.getElementById(`${tabName}-content`).classList.add('active');
// Re-render feather icons
feather.replace();
}
function switchNutritionSubTab(subTabName) {
activeNutritionSubTab = subTabName;
// Update button styles
document.querySelectorAll('.subtab-button').forEach(btn => {
btn.classList.remove('active');
if (btn.id === `${subTabName}-subtab`) {
btn.classList.add('active');
}
});
// Update content visibility
document.querySelectorAll('.subtab-content').forEach(content => {
content.classList.remove('active');
});
document.getElementById(`${subTabName}-content`).classList.add('active');
// Re-render feather icons
feather.replace();
}
function renderContent() {
renderSeasonalSchedule();
renderPharmacySections();
renderExercises();
}
function renderSeasonalSchedule() {
const container = document.getElementById('seasonal-schedule');
container.innerHTML = nutritionPlan.seasonal.schedule.map(meal => `
<div class="flex flex-col sm:flex-row gap-3 p-4 hover:bg-emerald-50 rounded-lg transition-all duration-200 border border-gray-100 hover:border-emerald-200 shadow-sm">
<div class="sm:min-w-[180px] font-bold text-emerald-800 flex items-center gap-2">
<i data-feather="clock" class="w-4 h-4 flex-shrink-0"></i>
${meal.time}
</div>
<div class="text-gray-700 leading-relaxed">${meal.item}</div>
</div>
`).join('');
const rulesContainer = document.getElementById('seasonal-rules');
rulesContainer.innerHTML = nutritionPlan.seasonal.rules.map(rule => `<li>${rule}</li>`).join('');
}
function renderPharmacySections() {
const container = document.getElementById('pharmacy-sections');
container.innerHTML = nutritionPlan.pharmacy.sections.map(section => `
<div class="p-5 rounded-xl border-2 border-${section.color}-200 bg-${section.color}-50 hover:shadow-lg transition-all duration-200">
<h3 class="font-bold text-lg text-${section.color}-800 flex items-center gap-2 mb-3">
<i data-feather="${section.icon}" class="w-5 h-5"></i>
${section.title}
</h3>
<ul class="list-disc list-inside text-gray-700 space-y-2 text-sm">
${section.items.map(item => `<li class="leading-relaxed">${item}</li>`).join('')}
</ul>
</div>
`).join('');
}
function renderExercises() {
// Morning exercises
const morningContainer = document.getElementById('morning-exercises');
morningContainer.innerHTML = exercisePlan.morning.exercises.map(ex => `
<div class="p-4 bg-white border border-gray-200 rounded-lg shadow-sm hover:shadow-md transition-all duration-200">
<div class="flex justify-between items-center mb-2">
<h3 class="font-bold text-gray-800">${ex.name}</h3>
<span class="bg-blue-50 text-blue-700 px-2 py-1 rounded text-xs font-bold">${ex.rep}</span>
</div>
<p class="text-gray-600 text-sm leading-relaxed">${ex.detail}</p>
</div>
`).join('');
// Evening exercises
const eveningContainer = document.getElementById('evening-exercises');
eveningContainer.innerHTML = exercisePlan.evening.exercises.map(ex => `
<div class="p-4 bg-white border border-gray-200 rounded-lg shadow-sm hover:shadow-md transition-all duration-200">
<div class="flex justify-between items-center mb-2">
<h3 class="font-bold text-gray-800">${ex.name}</h3>
<span class="bg-indigo-50 text-indigo-700 px-2 py-1 rounded text-xs font-bold">${ex.rep}</span>
</div>
<p class="text-gray-600 text-sm leading-relaxed">${ex.detail}</p>
</div>
`).join('');
}