From 7be51617570539aa4ac7d1f9002e34a2b3d8b62d Mon Sep 17 00:00:00 2001 From: Alexander Bocken Date: Wed, 8 Apr 2026 20:38:16 +0200 Subject: [PATCH] feat: add favorite toggle to food detail page Heart button in food header to add/remove favorites via the existing favorite-ingredients API. Checks status on load, toggles optimistically with error handling. --- .../food/[source]/[id]/+page.svelte | 67 ++++++++++++++++++- 1 file changed, 65 insertions(+), 2 deletions(-) diff --git a/src/routes/fitness/[nutrition=fitnessNutrition]/food/[source]/[id]/+page.svelte b/src/routes/fitness/[nutrition=fitnessNutrition]/food/[source]/[id]/+page.svelte index b5c8f630..22a4e9cd 100644 --- a/src/routes/fitness/[nutrition=fitnessNutrition]/food/[source]/[id]/+page.svelte +++ b/src/routes/fitness/[nutrition=fitnessNutrition]/food/[source]/[id]/+page.svelte @@ -1,6 +1,7 @@ @@ -138,7 +174,12 @@
-

{food.nameDe ?? food.name}

+
+

{food.nameDe ?? food.name}

+ +
{#if food.nameEn && food.nameDe}

{food.nameEn}

{/if} @@ -316,12 +357,34 @@ .food-header { margin-bottom: 1rem; } + .food-header-row { + display: flex; + align-items: flex-start; + justify-content: space-between; + gap: 0.5rem; + } .food-header h1 { font-size: 1.4rem; margin: 0 0 0.25rem; color: var(--color-text-primary); line-height: 1.3; } + .fav-btn { + background: none; + border: none; + cursor: pointer; + padding: 0.3rem; + border-radius: 50%; + flex-shrink: 0; + transition: background 0.15s; + -webkit-tap-highlight-color: transparent; + } + .fav-btn:hover { + background: var(--color-bg-elevated); + } + .fav-btn:disabled { + opacity: 0.5; + } .name-alt { margin: 0 0 0.5rem; font-size: 0.9rem;