diff --git a/package.json b/package.json index cda9b69..e57d568 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "lageplan", - "version": "1.5.8", + "version": "1.5.9", "description": "Feuerwehr Lageplan - Krokier-App für Einsatzdokumentation", "private": true, "scripts": { diff --git a/src/components/map/map-view.tsx b/src/components/map/map-view.tsx index 18a491b..91f8318 100644 --- a/src/components/map/map-view.tsx +++ b/src/components/map/map-view.tsx @@ -2141,6 +2141,20 @@ export function MapView({ onDrawModeChangeRef.current?.('select') }, []) + // Messung komplett entfernen (Linie, Marker, Höhen-Labels, Panel, Zustand) + const clearMeasurement = useCallback(() => { + measureMarkersRef.current.forEach(m => m.remove()) + measureMarkersRef.current = [] + measureCoordsRef.current = [] + setMeasurePointCount(0) + setMeasureFinished(false) + setMeasureResult(null) + if (map.current) { + const src = map.current.getSource('measure-line') as maplibregl.GeoJSONSource + if (src) src.setData({ type: 'FeatureCollection', features: [] }) + } + }, []) + // Finish measurement handler const finishMeasure = useCallback(() => { drawingRef.current.isDrawing = false @@ -2152,8 +2166,9 @@ export function MapView({ if (src) src.setData({ type: 'FeatureCollection', features: [] }) } fetchElevationsAndUpdateRef.current() - // Apple-style: auto-return to select mode after finishing measurement - onDrawModeChangeRef.current?.('select') + // WICHTIG: im Mess-Modus bleiben, sonst löscht der Reset-Effekt (drawMode !== 'measure') + // die eben gezeichnete Linie sofort wieder. Der Nutzer beendet über „Neue Messung" + // oder durch Wahl eines anderen Werkzeugs. }, []) return ( @@ -2358,17 +2373,7 @@ export function MapView({ {/* Neue Messung starten */} {drawMode === 'measure' && measureFinished && (