diff --git a/src/lib/components/HefeSwapper.svelte b/src/lib/components/HefeSwapper.svelte index 2df4de5..95c11c9 100644 --- a/src/lib/components/HefeSwapper.svelte +++ b/src/lib/components/HefeSwapper.svelte @@ -1,51 +1,39 @@ - +
+ + + {#each Array.from(currentParams.entries()) as [key, value]} + + {/each} + +
diff --git a/src/lib/components/IngredientsPage.svelte b/src/lib/components/IngredientsPage.svelte index a0652ab..4de5a28 100644 --- a/src/lib/components/IngredientsPage.svelte +++ b/src/lib/components/IngredientsPage.svelte @@ -2,10 +2,34 @@ import { onMount } from 'svelte'; import { onNavigate } from "$app/navigation"; import { browser } from '$app/environment'; +import { page } from '$app/stores'; import HefeSwapper from './HefeSwapper.svelte'; export let data let multiplier = data.multiplier || 1; +// Calculate yeast IDs for each yeast ingredient +let yeastIds = {}; +$: { + yeastIds = {}; + let yeastCounter = 0; + if (data.ingredients) { + for (let listIndex = 0; listIndex < data.ingredients.length; listIndex++) { + const list = data.ingredients[listIndex]; + if (list.list) { + for (let ingredientIndex = 0; ingredientIndex < list.list.length; ingredientIndex++) { + const ingredient = list.list[ingredientIndex]; + if (ingredient.name === "Frischhefe" || ingredient.name === "Trockenhefe") { + yeastIds[`${listIndex}-${ingredientIndex}`] = yeastCounter++; + } + } + } + } + } +} + +// Get all current URL parameters to preserve state in multiplier forms +$: currentParams = browser ? new URLSearchParams(window.location.search) : $page.url.searchParams; + // Progressive enhancement - use JS if available onMount(() => { if (browser) { @@ -154,14 +178,7 @@ function adjust_amount(string, multiplier){ } -function handleHefeToggle(event, item) { - item.name = event.detail.name; - item.amount = event.detail.amount; - if (event.detail.unit) { - item.unit = event.detail.unit; - } - data = data; // Trigger reactivity -} +// No need for complex yeast toggle handling - everything is calculated server-side now