import { getRecipeListHTML } from './views/RecipeList.js';
import { getFilterHTML, setupFilter } from './views/Filter.js';
import { getRecipeDetailHTML, setupRecipeDetail } from './views/RecipeDetail.js';
import { getMealPlannerHTML, setupMealPlanner } from './views/MealPlanner.js';
function getBottomNavHTML() {
return `
`;
}
function setupTabs() {
const main = document.getElementById('main-view');
const planner = document.getElementById('planner-view');
const nav = document.getElementById('app-bottom-nav');
if (!main || !planner || !nav) return;
const activeTab = 'nav-tab flex flex-col items-center gap-1 text-black min-w-[3.5rem]';
const idleTab = 'nav-tab flex flex-col items-center gap-1 text-gray-500 hover:text-gray-700 min-w-[3.5rem]';
const apply = (tab) => {
const showRecipes = tab === 'recipes';
main.classList.toggle('hidden', !showRecipes);
planner.classList.toggle('hidden', showRecipes);
nav.querySelectorAll('.nav-tab[data-tab]').forEach((btn) => {
const id = btn.getAttribute('data-tab');
if (btn.hasAttribute('disabled')) return;
if (id === 'recipes' || id === 'planner') {
btn.className = id === tab ? activeTab : idleTab;
}
});
};
nav.addEventListener('click', (e) => {
const btn = e.target.closest('.nav-tab[data-tab]');
if (!btn || btn.hasAttribute('disabled')) return;
const tab = btn.getAttribute('data-tab');
if (tab === 'recipes' || tab === 'planner') apply(tab);
});
apply('recipes');
}
document.addEventListener('DOMContentLoaded', () => {
const appContainer = document.getElementById('app-container');
appContainer.innerHTML = `
${getRecipeListHTML()}
${getMealPlannerHTML()}
${getBottomNavHTML()}
${getRecipeDetailHTML()}
${getFilterHTML()}
`;
setupTabs();
setupMealPlanner();
setupFilter();
setupRecipeDetail();
});
// --- GLOBAL NAVIGATION METHODS ---
window.openRecipeDetail = () => {
const view = document.getElementById('recipe-detail-view');
// Swap Tailwind classes to slide IN
view.classList.remove('translate-x-full', 'opacity-0', 'pointer-events-none');
view.classList.add('translate-x-0', 'opacity-100', 'pointer-events-auto');
};
window.closeRecipeDetail = () => {
const view = document.getElementById('recipe-detail-view');
// Swap Tailwind classes to slide OUT
view.classList.remove('translate-x-0', 'opacity-100', 'pointer-events-auto');
view.classList.add('translate-x-full', 'opacity-0', 'pointer-events-none');
};
window.openFilters = () => {
const fv = document.getElementById('filter-view');
fv.classList.remove('hidden');
fv.classList.add('flex');
};
window.closeFilters = () => {
const fv = document.getElementById('filter-view');
fv.classList.add('hidden');
fv.classList.remove('flex');
};