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 }) => {