"use client"; import { ArrowPathIcon, ClockIcon, FireIcon, PlusIcon, ScaleIcon, } from "@heroicons/react/24/outline"; import Link from "next/link"; import { useEffect, useMemo, useState } from "react"; import { useSession } from "@/lib/auth-client"; import { RecipeRating, loadHellthData, recipeRatingSummary, saveHellthData, uid, } from "@/lib/hellth-data"; const recipeId = "recipe-eggs"; function MacroBar() { return (
); } export default function RecipePage() { const { data: session } = useSession(); const userKey = session?.user?.id ?? session?.user?.email ?? null; const displayName = session?.user?.name || session?.user?.email || "Du"; const [ratings, setRatings] = useState([]); const [rating, setRating] = useState(5); const [comment, setComment] = useState(""); const summary = useMemo(() => recipeRatingSummary(recipeId, ratings), [ratings]); useEffect(() => { if (!userKey) return; const data = loadHellthData(userKey); setRatings(data.recipeRatings); const own = data.recipeRatings.find((item) => item.recipeId === recipeId && item.userKey === userKey); if (own) { setRating(own.rating); setComment(own.comment ?? ""); } }, [userKey]); function saveRating() { if (!userKey) return; const data = loadHellthData(userKey); const nextRating: RecipeRating = { id: data.recipeRatings.find((item) => item.recipeId === recipeId && item.userKey === userKey)?.id ?? uid("rating"), recipeId, userKey, displayName, rating, comment: comment.trim() || undefined, createdAt: new Date().toISOString(), }; const nextRatings = [ nextRating, ...data.recipeRatings.filter((item) => !(item.recipeId === recipeId && item.userKey === userKey)), ]; saveHellthData({ ...data, recipeRatings: nextRatings }, userKey); setRatings(nextRatings); } return (
EM

Eier-Muffins mit Paprika

523 kcal

Pro Portion

20 Min

Kochzeit

88/100

Score

User-Bewertung

{summary.count ? `${summary.average}/5 aus ${summary.count} Bewertung(en)` : "Noch keine Bewertungen."}

{[1, 2, 3, 4, 5].map((value) => ( ))}