From 66d217dfc0f495082e8240386e761516b4f8624a Mon Sep 17 00:00:00 2001 From: Nico Date: Sun, 14 Jun 2026 23:16:29 -0700 Subject: [PATCH] fix: keep selected map area after publish --- frontend/src/hooks/useLocationMapDraftActions.js | 2 +- frontend/tests/location-map-manager.spec.ts | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/frontend/src/hooks/useLocationMapDraftActions.js b/frontend/src/hooks/useLocationMapDraftActions.js index fe8f1a4..8296716 100644 --- a/frontend/src/hooks/useLocationMapDraftActions.js +++ b/frontend/src/hooks/useLocationMapDraftActions.js @@ -121,7 +121,7 @@ export default function useLocationMapDraftActions({ const response = await publishLocationMapDraft(activeHouseholdId, locationId); if (!isCurrentScope()) return; - applyDraftResponse(response, "view", false); + applyDraftResponse(response, "view", false, { preserveSelectedIndex: selectedObjectIndex }); toast.success( "Published map", hasUnsavedChanges diff --git a/frontend/tests/location-map-manager.spec.ts b/frontend/tests/location-map-manager.spec.ts index 71e6905..be81044 100644 --- a/frontend/tests/location-map-manager.spec.ts +++ b/frontend/tests/location-map-manager.spec.ts @@ -2795,6 +2795,9 @@ test("admin publish saves pending map edits before publishing", async ({ page }) await expect(page.locator(".location-map-status")).toHaveText("Published"); await expect(page.getByRole("button", { name: "Map area Quick Publish Bakery" })).toBeVisible(); await expect(page.getByRole("button", { name: "Map area Live Bakery" })).toHaveCount(0); + await expect(page.locator(".location-map-object.is-selected")).toHaveAttribute("data-object-key", "1450"); + await expect(page.locator(".location-map-sheet-header strong")).toHaveText("Quick Publish Bakery"); + await expect(page.getByRole("button", { name: "Close selected map area" })).toBeVisible(); }); test("admin publish failure keeps successfully saved pending edits", async ({ page }) => {