From ba48ece8846d073d8672c15523c1a0cb186afa15 Mon Sep 17 00:00:00 2001 From: Nico Date: Wed, 3 Jun 2026 22:42:35 -0700 Subject: [PATCH] fix: add first map area from canvas --- .../src/components/maps/LocationMapCanvas.jsx | 20 +++++++- frontend/src/pages/LocationMapManager.jsx | 1 + frontend/tests/location-map-manager.spec.ts | 51 +++++++++++++++++++ 3 files changed, 70 insertions(+), 2 deletions(-) diff --git a/frontend/src/components/maps/LocationMapCanvas.jsx b/frontend/src/components/maps/LocationMapCanvas.jsx index c7e5d39..d42a8a8 100644 --- a/frontend/src/components/maps/LocationMapCanvas.jsx +++ b/frontend/src/components/maps/LocationMapCanvas.jsx @@ -23,6 +23,7 @@ export default function LocationMapCanvas({ dragState, editingLocked = false, hiddenAreaCount = 0, + onAddObject, onShowZones, onShowHiddenAreas, setDragState, @@ -37,9 +38,11 @@ export default function LocationMapCanvas({ ? objects.filter((object) => object.visible).length : 0; const hasNoVisibleObjects = objects.length > 0 && filters.showZones && visibleObjectCount === 0; + const canAddFirstArea = + !editingLocked && mode === "edit" && objects.length === 0 && typeof onAddObject === "function"; const canRecoverHiddenAreas = mode === "edit" && hasNoVisibleObjects && hiddenAreaCount > 0 && typeof onShowHiddenAreas === "function"; - const hasEmptyCanvasAction = hiddenByZonesLayer || canRecoverHiddenAreas; + const hasEmptyCanvasAction = canAddFirstArea || hiddenByZonesLayer || canRecoverHiddenAreas; const emptyCanvasMessage = objects.length === 0 ? "No map areas yet" : hiddenByZonesLayer @@ -160,6 +163,11 @@ export default function LocationMapCanvas({ onShowZones?.(); }; + const handleAddObject = (event) => { + event.stopPropagation(); + onAddObject?.(); + }; + const handleShowHiddenAreas = (event) => { event.stopPropagation(); onShowHiddenAreas?.(); @@ -406,7 +414,15 @@ export default function LocationMapCanvas({ ].filter(Boolean).join(" ")} > {emptyCanvasMessage} - {hiddenByZonesLayer ? ( + {canAddFirstArea ? ( + + ) : hiddenByZonesLayer ? (