From f495c024c65bbe6da680f9785c41760092291c07 Mon Sep 17 00:00:00 2001 From: hsiegeln <37154749+hsiegeln@users.noreply.github.com> Date: Wed, 22 Apr 2026 14:28:32 +0200 Subject: [PATCH] feat(recipe): View-Beacon beim oeffnen der Detailseite MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fire-and-forget POST /api/recipes/[id]/view in onMount, nur wenn profileStore.active gesetzt. Schreibt last_viewed_at fuers Profil — Voraussetzung fuer den Sort 'Zuletzt angesehen' auf der Hauptseite. Co-Authored-By: Claude Opus 4.7 (1M context) --- src/routes/recipes/[id]/+page.svelte | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/routes/recipes/[id]/+page.svelte b/src/routes/recipes/[id]/+page.svelte index 2623ea0..f84f10e 100644 --- a/src/routes/recipes/[id]/+page.svelte +++ b/src/routes/recipes/[id]/+page.svelte @@ -355,6 +355,17 @@ } }; document.addEventListener('visibilitychange', onVisibility); + + // Track view per active profile (fire-and-forget). Skipped when no + // profile is active — we'd just be writing rows nobody can sort against later. + if (profileStore.active) { + void fetch(`/api/recipes/${data.recipe.id}/view`, { + method: 'POST', + headers: { 'content-type': 'application/json' }, + body: JSON.stringify({ profile_id: profileStore.active.id }) + }); + } + return () => document.removeEventListener('visibilitychange', onVisibility); });