// 1. ZDJĘCIA Z DATASETU const hardcodedMeals = [ { name: "Stek z warzywami", image: "/test_images/stek_z_warzywami.jpg", macros: { kcal: 525, p: 48, f: 35, c: 6 } }, { name: "Mini pizza salami", image: "/test_images/mini_pizza_salami.jpg", macros: { kcal: 132, p: 6, f: 6, c: 15 } }, { name: "Jajecznica z brokułem", image: "/test_images/jajecznica_z_brokulem.jpg", macros: { kcal: 296, p: 19, f: 21, c: 7 } }, { name: "Mix sałat", image: "/test_images/miska_salaty.jpg", macros: { kcal: 20, p: 1, f: 0, c: 4 } }, { name: "Bekon", image: "/test_images/bekon.jpg", macros: { kcal: 470, p: 32, f: 36, c: 1 } }, { name: "Owsianka z owocami", image: "/test_images/owsianka_z_owocami.jpg", macros: { kcal: 155, p: 5, f: 3, c: 29 } } ]; // 2. ZDJĘCIA SPOZA DATASETU const externalMeals = [ { name: "Burger drwala", image: "/test_images/burger_drwala.png", macros: { kcal: 915, p: 39, f: 52, c: 70 } }, { name: "Kotelty drobiowe z ziemniakami i sałatą", image: "/test_images/kotelty_z_ziemniakami.jpeg", macros: { kcal: 590, p: 61, f: 11, c: 63 } }, { name: "Spaghetti bolognese", image: "/test_images/spaghetti-bolognese.jpg", macros: { kcal: 405, p: 21, f: 17, c: 43 } }, { name: "SUPER bowl", image: "/test_images/super_bowl.png", macros: { kcal: 716, p: 33, f: 42, c: 60 } } ]; // 3. POSIŁKI UŻYTKOWNIKÓW let userMeals = JSON.parse(localStorage.getItem('savedUserMeals')) || []; let currentFile = null; let currentTruth = null; let activeTab = null; // Słownik do przywracania oryginalnych nazw przycisków const btnOriginalText = { test: "🗂️ Dataset", external: "🌍 Spoza Datasetu", user: "👤 Użytkownik" }; window.onload = () => {}; function openSidebar(tab) { const sidebar = document.getElementById('sidebar'); const btns = { test: document.getElementById('btnTest'), external: document.getElementById('btnExternal'), user: document.getElementById('btnUser') }; // Resetujemy wszystkie przyciski do stanu domyślnego for (let key in btns) { btns[key].classList.remove('open'); btns[key].classList.remove('shifted'); // Usuwamy przesunięcie btns[key].style.backgroundColor = "#333"; btns[key].style.color = "white"; btns[key].innerText = btnOriginalText[key]; } // Jeśli kliknięto aktywny panel -> zamknij i przerwij (wszystko wraca na prawo) if (activeTab === tab && sidebar.classList.contains('open')) { sidebar.classList.remove('open'); activeTab = null; return; } // Otwarcie nowego panelu sidebar.classList.add('open'); activeTab = tab; // Otwarcie nowego panelu sidebar.classList.add('open'); activeTab = tab; // JEŚLI TO TELEFON - ZAMKNIJ PRZYCISKI PO WYBORZE if (window.innerWidth <= 800) { document.getElementById('menuContainer').classList.remove('show'); } // Przesuwamy WSZYSTKIE przyciski na lewo (do krawędzi panelu) for (let key in btns) { btns[key].classList.add('shifted'); } // Stylizacja TYLKO aktywnego przycisku i zmiana tekstu na emotkę btns[tab].classList.add('open'); btns[tab].style.backgroundColor = "#00ff88"; btns[tab].style.color = "#121212"; btns[tab].innerText = "▶︎▶︎▶︎"; // Emotka zastępująca ">>> Zamknij" // Wybór odpowiedniej zawartości do wyświetlenia if (tab === 'test') { renderList(hardcodedMeals, 'test'); } else if (tab === 'external') { renderList(externalMeals, 'external'); } else { renderList(userMeals, 'user'); } } function renderList(mealsArray, type) { const list = document.getElementById('mealsList'); const form = document.getElementById('addMealForm'); const title = document.getElementById('sidebarTitle'); const desc = document.getElementById('sidebarDesc'); list.innerHTML = ""; if (type === 'test') { title.innerText = "Baza Datasetu"; desc.innerText = "Oryginalne posiłki wycięte ze zbioru testowego."; form.style.display = 'none'; if(mealsArray.length === 0) list.innerHTML = "
Brak zdjęć w skrypcie.
"; } else if (type === 'external') { title.innerText = "Spoza Datasetu"; desc.innerText = "Testy na zdjęciach spoza zbioru."; form.style.display = 'none'; if(mealsArray.length === 0) list.innerHTML = "Brak zewnętrznych zdjęć.
"; } else { title.innerText = "Posiłki Użytkownika"; desc.innerText = "Zapisywane lokalnie w przeglądarce."; form.style.display = 'block'; if(mealsArray.length === 0) list.innerHTML = "Dodaj pierwszy posiłek poniżej!
"; } mealsArray.forEach((meal, index) => { list.innerHTML += `