Add store location map manager #20
@ -94,6 +94,8 @@ export default function LocationMapBottomSheet({
|
|||||||
const visibleAreaCount = filters.showZones
|
const visibleAreaCount = filters.showZones
|
||||||
? Math.max(0, totalAreaCount - hiddenAreaCount)
|
? Math.max(0, totalAreaCount - hiddenAreaCount)
|
||||||
: 0;
|
: 0;
|
||||||
|
const hasNoVisibleAreas =
|
||||||
|
filters.showZones && totalAreaCount > 0 && visibleAreaCount === 0 && hiddenAreaCount > 0;
|
||||||
const showMapOverview = mode !== "edit" && !selectedObject;
|
const showMapOverview = mode !== "edit" && !selectedObject;
|
||||||
const unlinkedAreaCount = useMemo(
|
const unlinkedAreaCount = useMemo(
|
||||||
() => mapObjects.filter((object) => !objectZoneId(object)).length,
|
() => mapObjects.filter((object) => !objectZoneId(object)).length,
|
||||||
@ -109,6 +111,8 @@ export default function LocationMapBottomSheet({
|
|||||||
const hasHiddenUnmappedItems =
|
const hasHiddenUnmappedItems =
|
||||||
filters.showUnmapped && unmappedItemCount > 0 && visibleUnmappedItems.length === 0;
|
filters.showUnmapped && unmappedItemCount > 0 && visibleUnmappedItems.length === 0;
|
||||||
const hiddenAreaLabel = `Show Hidden Areas (${hiddenAreaCount})`;
|
const hiddenAreaLabel = `Show Hidden Areas (${hiddenAreaCount})`;
|
||||||
|
const showHiddenAreaAction =
|
||||||
|
showEditorControls && hiddenAreaCount > 0 && filters.showZones && !hasNoVisibleAreas;
|
||||||
const saveDraftLabel = savingAction === "save" ? "Saving..." : "Save Draft";
|
const saveDraftLabel = savingAction === "save" ? "Saving..." : "Save Draft";
|
||||||
const publishLabel = savingAction === "publish" ? "Publishing..." : "Publish";
|
const publishLabel = savingAction === "publish" ? "Publishing..." : "Publish";
|
||||||
const mappedItemSummary = assignedItemCount === visibleAssignedItemCount
|
const mappedItemSummary = assignedItemCount === visibleAssignedItemCount
|
||||||
@ -236,7 +240,7 @@ export default function LocationMapBottomSheet({
|
|||||||
</div>
|
</div>
|
||||||
) : editorActions}
|
) : editorActions}
|
||||||
|
|
||||||
{showEditorControls && hiddenAreaCount > 0 ? (
|
{showHiddenAreaAction ? (
|
||||||
<div className="location-map-hidden-areas">
|
<div className="location-map-hidden-areas">
|
||||||
<button type="button" onClick={onShowHiddenAreas} disabled={saving}>
|
<button type="button" onClick={onShowHiddenAreas} disabled={saving}>
|
||||||
{hiddenAreaLabel}
|
{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.locator(".location-map-sheet-header strong")).toHaveText("Edit Areas");
|
||||||
await expect(page.getByText("No visible map areas")).toBeVisible();
|
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.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 expect(page.locator(".location-map-status")).toHaveText("Unsaved Draft");
|
||||||
|
|
||||||
await page.locator(".location-map-empty-canvas").getByRole("button", { name: "Show Hidden" }).click();
|
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(
|
await expect(
|
||||||
page.locator(".location-map-empty-canvas").getByRole("button", { name: "Show Hidden" })
|
page.locator(".location-map-empty-canvas").getByRole("button", { name: "Show Hidden" })
|
||||||
).toBeEnabled();
|
).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 page.getByRole("button", { name: "Save Draft" }).click();
|
||||||
await expect.poll(() => saveStarted).toBe(true);
|
await expect.poll(() => saveStarted).toBe(true);
|
||||||
await expect(
|
await expect(
|
||||||
page.locator(".location-map-empty-canvas").getByRole("button", { name: "Show Hidden" })
|
page.locator(".location-map-empty-canvas").getByRole("button", { name: "Show Hidden" })
|
||||||
).toBeDisabled();
|
).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();
|
releaseSave();
|
||||||
await expect(page.locator(".location-map-status")).toHaveText("Draft");
|
await expect(page.locator(".location-map-status")).toHaveText("Draft");
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user