fix(recipe): Favoriten-Markierung persistiert beim Neuladen
All checks were successful
Build & Publish Docker Image / build-and-push (push) Successful in 50s
All checks were successful
Build & Publish Docker Image / build-and-push (push) Successful in 50s
Bug: Beim Neuanzeigen einer Rezeptseite war der Favoriten-Button immer grau — isFav wurde als local $state(false) initialisiert und die checkFavorite()-Funktion war eine Stub-Implementation, die nichts gemacht hat. State lebte nur innerhalb einer Session. Fix: - Neue Server-Funktion listFavoriteProfiles(db, recipeId): number[] in $lib/server/recipes/actions.ts - +page.server.ts lädt favorite_profile_ids mit in die Page-Daten - +page.svelte macht isFav zum $derived aus favoriteProfileIds + aktivem Profil. toggleFavorite mutiert die lokale Liste (Add/Remove der aktiven Profil-ID) — beim nächsten Load ist die Server-Liste wieder Source of Truth. - Alte Stub-Funktion checkFavorite() entfernt (inkl. Aufruf in onMount).
This commit is contained in:
@@ -73,6 +73,17 @@ export function isFavorite(
|
||||
);
|
||||
}
|
||||
|
||||
export function listFavoriteProfiles(
|
||||
db: Database.Database,
|
||||
recipeId: number
|
||||
): number[] {
|
||||
return (
|
||||
db
|
||||
.prepare('SELECT profile_id FROM favorite WHERE recipe_id = ?')
|
||||
.all(recipeId) as { profile_id: number }[]
|
||||
).map((r) => r.profile_id);
|
||||
}
|
||||
|
||||
export function logCooked(
|
||||
db: Database.Database,
|
||||
recipeId: number,
|
||||
|
||||
Reference in New Issue
Block a user