fix: avoid duplicate hidden map recovery
This commit is contained in:
parent
214df9faec
commit
11ac4c9eb2
@ -94,6 +94,8 @@ export default function LocationMapBottomSheet({
|
||||
const visibleAreaCount = filters.showZones
|
||||
? Math.max(0, totalAreaCount - hiddenAreaCount)
|
||||
: 0;
|
||||
const hasNoVisibleAreas =
|
||||
filters.showZones && totalAreaCount > 0 && visibleAreaCount === 0 && hiddenAreaCount > 0;
|
||||
const showMapOverview = mode !== "edit" && !selectedObject;
|
||||
const unlinkedAreaCount = useMemo(
|
||||
() => mapObjects.filter((object) => !objectZoneId(object)).length,
|
||||
@ -109,6 +111,8 @@ export default function LocationMapBottomSheet({
|
||||
const hasHiddenUnmappedItems =
|
||||
filters.showUnmapped && unmappedItemCount > 0 && visibleUnmappedItems.length === 0;
|
||||
const hiddenAreaLabel = `Show Hidden Areas (${hiddenAreaCount})`;
|
||||
const showHiddenAreaAction =
|
||||
showEditorControls && hiddenAreaCount > 0 && filters.showZones && !hasNoVisibleAreas;
|
||||
const saveDraftLabel = savingAction === "save" ? "Saving..." : "Save Draft";
|
||||
const publishLabel = savingAction === "publish" ? "Publishing..." : "Publish";
|
||||
const mappedItemSummary = assignedItemCount === visibleAssignedItemCount
|
||||
@ -236,7 +240,7 @@ export default function LocationMapBottomSheet({
|
||||
</div>
|
||||
) : editorActions}
|
||||
|
||||
{showEditorControls && hiddenAreaCount > 0 ? (
|
||||
{showHiddenAreaAction ? (
|
||||
<div className="location-map-hidden-areas">
|
||||
<button type="button" onClick={onShowHiddenAreas} disabled={saving}>
|
||||
{hiddenAreaLabel}
|
||||
|
||||
@ -1003,7 +1003,7 @@ test("admin can recover hidden map areas from the empty canvas", async ({ page }
|
||||
await expect(page.locator(".location-map-sheet-header strong")).toHaveText("Edit Areas");
|
||||
await expect(page.getByText("No visible map areas")).toBeVisible();
|
||||
await expect(page.locator(".location-map-empty-canvas").getByRole("button", { name: "Show Hidden" })).toBeVisible();
|
||||
await expect(page.getByRole("button", { name: "Show Hidden Areas (1)" })).toBeVisible();
|
||||
await expect(page.getByRole("button", { name: "Show Hidden Areas (1)" })).toHaveCount(0);
|
||||
await expect(page.locator(".location-map-status")).toHaveText("Unsaved Draft");
|
||||
|
||||
await page.locator(".location-map-empty-canvas").getByRole("button", { name: "Show Hidden" }).click();
|
||||
@ -1462,14 +1462,14 @@ test("admin save progress locks empty-canvas recovery actions", async ({ page })
|
||||
await expect(
|
||||
page.locator(".location-map-empty-canvas").getByRole("button", { name: "Show Hidden" })
|
||||
).toBeEnabled();
|
||||
await expect(page.getByRole("button", { name: "Show Hidden Areas (1)" })).toBeEnabled();
|
||||
await expect(page.getByRole("button", { name: "Show Hidden Areas (1)" })).toHaveCount(0);
|
||||
|
||||
await page.getByRole("button", { name: "Save Draft" }).click();
|
||||
await expect.poll(() => saveStarted).toBe(true);
|
||||
await expect(
|
||||
page.locator(".location-map-empty-canvas").getByRole("button", { name: "Show Hidden" })
|
||||
).toBeDisabled();
|
||||
await expect(page.getByRole("button", { name: "Show Hidden Areas (1)" })).toBeDisabled();
|
||||
await expect(page.getByRole("button", { name: "Show Hidden Areas (1)" })).toHaveCount(0);
|
||||
|
||||
releaseSave();
|
||||
await expect(page.locator(".location-map-status")).toHaveText("Draft");
|
||||
|
||||
Loading…
Reference in New Issue
Block a user