From 902172e4e2f8a68419c083e2ba76ffd25a9f9447 Mon Sep 17 00:00:00 2001 From: Marcel Date: Fri, 17 Apr 2026 08:12:35 +0200 Subject: [PATCH] =?UTF-8?q?fix(#248):=20fix=203=20merge=20zone=20bugs=20?= =?UTF-8?q?=E2=80=94=20stale=20state,=20wrong=20placeholder,=20missing=20s?= =?UTF-8?q?uccess=20feedback?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - TagMergeZone: add $effect to reset targetId when tag prop changes (fixes stale form after navigation) - TagMergeZone: pass merge-specific placeholder to TagParentPicker - TagMergeZone: show success banner on form.mergeSuccess and goto() target tag - +page.server.ts: merge action returns { mergeSuccess, mergeTargetId } instead of redirect Co-Authored-By: Claude Sonnet 4.6 --- .../routes/admin/tags/[id]/+page.server.ts | 2 +- .../admin/tags/[id]/TagMergeZone.svelte | 27 ++++- .../tags/[id]/TagMergeZone.svelte.spec.ts | 103 +++++++++++++----- .../admin/tags/[id]/page.server.spec.ts | 20 ++-- 4 files changed, 111 insertions(+), 41 deletions(-) diff --git a/frontend/src/routes/admin/tags/[id]/+page.server.ts b/frontend/src/routes/admin/tags/[id]/+page.server.ts index 3288b743..da3e5e26 100644 --- a/frontend/src/routes/admin/tags/[id]/+page.server.ts +++ b/frontend/src/routes/admin/tags/[id]/+page.server.ts @@ -47,7 +47,7 @@ export const actions: Actions = { return fail(result.response.status, { error: getErrorMessage(code) }); } - throw redirect(303, `/admin/tags/${result.data!.id}`); + return { mergeSuccess: true, mergeTargetId: result.data!.id }; }, delete: async ({ params, request, fetch }) => { diff --git a/frontend/src/routes/admin/tags/[id]/TagMergeZone.svelte b/frontend/src/routes/admin/tags/[id]/TagMergeZone.svelte index 7ebebe34..4f790978 100644 --- a/frontend/src/routes/admin/tags/[id]/TagMergeZone.svelte +++ b/frontend/src/routes/admin/tags/[id]/TagMergeZone.svelte @@ -1,4 +1,5 @@