diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/routes/+page.svelte | 2 | ||||
| -rw-r--r-- | src/routes/catalog/+page.svelte | 4 | ||||
| -rw-r--r-- | src/routes/grocery/[id]/+page.server.ts | 9 | ||||
| -rw-r--r-- | src/routes/grocery/[id]/+page.svelte | 3 |
4 files changed, 12 insertions, 6 deletions
diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index 6d9d85f..25985f1 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -131,7 +131,7 @@ {/if} </span> </button> - <a class="ref-link" href="/grocery/{item.id}">→</a> + <a class="ref-link" href="/grocery/{item.id}?from=/">→</a> </li> {/each} </ul> diff --git a/src/routes/catalog/+page.svelte b/src/routes/catalog/+page.svelte index 4b43c02..469faa1 100644 --- a/src/routes/catalog/+page.svelte +++ b/src/routes/catalog/+page.svelte @@ -46,7 +46,9 @@ {/if} </span> </button> - <a class="ref-link" href="/grocery/{item.id}">→</a> + <a class="ref-link" href="/grocery/{item.id}?from=/catalog" + >→</a + > </li> {/each} </ul> diff --git a/src/routes/grocery/[id]/+page.server.ts b/src/routes/grocery/[id]/+page.server.ts index 6aed71e..d06c810 100644 --- a/src/routes/grocery/[id]/+page.server.ts +++ b/src/routes/grocery/[id]/+page.server.ts @@ -23,7 +23,7 @@ export interface GroceryDetailOutput { categories: Category[]; } -export const load: PageServerLoad = async ({ params }) => { +export const load: PageServerLoad = async ({ params, url }) => { const id = numericId(params.id); const [item] = await db.select().from(groceries).where(eq(groceries.id, id)); @@ -38,6 +38,7 @@ export const load: PageServerLoad = async ({ params }) => { const refs = await loadForGrocery(id); const cats = await loadCategories(); + const from = url.searchParams.get('from') || '/'; return { item: { @@ -46,6 +47,7 @@ export const load: PageServerLoad = async ({ params }) => { }, references: refs, categories: cats, + from, }; }; @@ -95,7 +97,8 @@ export const actions: Actions = { deleteItem: async ({ params, request }) => { const groceryId = numericId(params.id); await deleteGrocery(groceryId); - const referer = request.headers.get('referer'); - throw redirect(303, referer || '/'); + const data = await request.formData(); + const from = parseFormString(data.get('from')) || '/'; + throw redirect(303, from); }, }; diff --git a/src/routes/grocery/[id]/+page.svelte b/src/routes/grocery/[id]/+page.svelte index c74166b..6588ec0 100644 --- a/src/routes/grocery/[id]/+page.svelte +++ b/src/routes/grocery/[id]/+page.svelte @@ -137,10 +137,11 @@ {/if} <form method="POST" action="?/deleteItem" use:enhance> + <input type="hidden" name="from" value={data.from} /> <button type="submit" class="delete-item-btn">Supprimer l'article</button> </form> -<a href="/" class="back-link">← Retour à la liste</a> +<a href={data.from} class="back-link">← Retour</a> <style> .ref-row { |
