From 3148742b323ab71f1ef768a2f4dc353c00944034 Mon Sep 17 00:00:00 2001 From: Martin Kagamino Lehoux Date: Tue, 8 Sep 2026 09:25:03 +0200 Subject: Share grocery row component and list-page form actions - GroceryRow.svelte renders the toggle row (checkbox, name, best ref, arrow link) for both the list and catalog pages - grocery-actions.ts grows full form actions: addCategoryAction, addGroceryAction, addGroceryAndEditAction, deleteByIdAction; the categories/groceries route servers become thin wrappers --- src/routes/grocery/[id]/+page.server.ts | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) (limited to 'src/routes/grocery') diff --git a/src/routes/grocery/[id]/+page.server.ts b/src/routes/grocery/[id]/+page.server.ts index e1e2751..656e19c 100644 --- a/src/routes/grocery/[id]/+page.server.ts +++ b/src/routes/grocery/[id]/+page.server.ts @@ -9,6 +9,7 @@ import { deleteReference, } from '$lib/server/services/references'; import { updateGrocery, deleteGrocery } from '$lib/server/services/groceries'; +import { deleteByIdAction } from '$lib/server/services/grocery-actions'; import { numericId, parseFormString, @@ -68,16 +69,8 @@ export const actions: Actions = { return { success: true, type: 'add' as const }; }, - delete: async ({ request }) => { - const data = await request.formData(); - try { - const id = numericId(data.get('id')); - await deleteReference(id); - } catch { - return fail(400, { error: 'ID invalide' }); - } - return { success: true, type: 'delete' as const }; - }, + delete: ({ request }) => + deleteByIdAction(request, deleteReference, { type: 'delete' }), update: async ({ request, params }) => { const data = await request.formData(); -- cgit v1.3