import { useState, useEffect } from 'react'; import { fetchRecipes, fetchCategories, fetchAuthors } from '../api'; import RecipeCard from '../components/RecipeCard'; const ALL_CATEGORIES = ['Alle', 'Frühstück', 'Hauptgericht', 'Dessert', 'Snack', 'Getränk', 'Sonstiges']; export default function Home() { const [recipes, setRecipes] = useState([]); const [categories, setCategories] = useState([]); const [authors, setAuthors] = useState([]); const [search, setSearch] = useState(''); const [selectedCategory, setSelectedCategory] = useState('Alle'); const [selectedAuthor, setSelectedAuthor] = useState(''); const [loading, setLoading] = useState(true); useEffect(() => { loadRecipes(); }, [search, selectedCategory, selectedAuthor]); useEffect(() => { loadCategories(); loadAuthors(); }, []); const loadRecipes = async () => { setLoading(true); try { const data = await fetchRecipes(search, selectedCategory, selectedAuthor || undefined); setRecipes(data); } catch (e) { console.error('Fehler beim Laden:', e); } setLoading(false); }; const loadCategories = async () => { try { const data = await fetchCategories(); setCategories(data); } catch (e) { console.error('Fehler beim Laden der Kategorien:', e); } }; const loadAuthors = async () => { try { const data = await fetchAuthors(); setAuthors(data); } catch (e) { console.error('Fehler beim Laden der Autoren:', e); } }; const getCategoryCount = (cat) => { if (cat === 'Alle') return categories.reduce((sum, c) => sum + c.count, 0); const found = categories.find(c => c.category === cat); return found ? found.count : 0; }; return (
setSearch(e.target.value)} className="w-full px-4 py-3 border border-gray-300 rounded-xl text-lg focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent" />
{ALL_CATEGORIES.map(cat => ( ))}
{authors.length > 0 && (
)} {loading ? (
Laden...
) : recipes.length === 0 ? (

Keine Rezepte gefunden

Füge dein erstes Rezept über TikTok-Links hinzu!

) : (
{recipes.map(recipe => ( ))}
)}
); }