fix(review): App-Kontrolle – 3 Funde behoben (v1.4.17)

Komplett-Check nach den UX-Umbauten (Typecheck + Produktions-Build + Code-Review):

- Tastenkürzel (V/L/G/...) lösen jetzt ebenfalls die Auto-Bearbeitung aus —
  vorher umgingen sie ensureEditing und der erste Strich wurde nicht gesynct
- ensureEditing feuert nicht mehr mehrfach parallel (editingLoading-Guard)
- Onboarding-Tour aktualisiert: Schritt "Bearbeitung starten" (Button existiert
  nicht mehr) → "Einfach loszeichnen"; Symbol-Schritt erwähnt Tap-to-place

Geprüft, ohne Befund: Auto-Save-Gating, Status-Zeile, flache Sidebar,
Linientyp-Dialog inkl. Gefahrenzone, Demo-Seite, Produktions-Build (Exit 0).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Pepe Ziberi
2026-07-19 17:58:01 +02:00
parent b1451b665a
commit 6eab656ae6
3 changed files with 8 additions and 9 deletions

View File

@@ -1,6 +1,6 @@
{ {
"name": "lageplan", "name": "lageplan",
"version": "1.4.16", "version": "1.4.17",
"description": "Feuerwehr Lageplan - Krokier-App für Einsatzdokumentation", "description": "Feuerwehr Lageplan - Krokier-App für Einsatzdokumentation",
"private": true, "private": true,
"scripts": { "scripts": {

View File

@@ -396,8 +396,9 @@ export default function AppPage() {
const ensureEditing = useCallback(() => { const ensureEditing = useCallback(() => {
if (!currentProject || presentationLocked || !roleCanEdit) return if (!currentProject || presentationLocked || !roleCanEdit) return
if (isEditingByMe || editingBy) return // ich zeichne schon / jemand anderes hält den Lock if (isEditingByMe || editingBy) return // ich zeichne schon / jemand anderes hält den Lock
if (editingLoading) return // Lock-Anfrage läuft bereits — nicht doppelt feuern
handleStartEditing({ silent: true }) handleStartEditing({ silent: true })
}, [currentProject, presentationLocked, roleCanEdit, isEditingByMe, editingBy, handleStartEditing]) }, [currentProject, presentationLocked, roleCanEdit, isEditingByMe, editingBy, editingLoading, handleStartEditing])
// Werkzeugwechsel auf ein Zeichen-Tool übernimmt vorab den Lock (rechtzeitig vor dem Zeichnen) // Werkzeugwechsel auf ein Zeichen-Tool übernimmt vorab den Lock (rechtzeitig vor dem Zeichnen)
const handleDrawModeChange = useCallback((mode: DrawMode) => { const handleDrawModeChange = useCallback((mode: DrawMode) => {
@@ -799,7 +800,7 @@ export default function AppPage() {
onRedo: handleRedo, onRedo: handleRedo,
onSave: handleSaveProject, onSave: handleSaveProject,
onDelete: handleFeaturesChange, onDelete: handleFeaturesChange,
onToolChange: setDrawMode, onToolChange: handleDrawModeChange, // Auto-Bearbeitung greift auch bei Tastenkürzeln
onHelpOpen: useCallback(() => setIsShortcutHelpOpen(true), []), onHelpOpen: useCallback(() => setIsShortcutHelpOpen(true), []),
}) })

View File

@@ -34,11 +34,9 @@ const TOUR_STEPS: TourStep[] = [
position: 'bottom', position: 'bottom',
}, },
{ {
title: 'Bearbeitung starten', title: 'Einfach loszeichnen',
icon: <Lock className="w-5 h-5 text-green-500" />, icon: <Lock className="w-5 h-5 text-green-500" />,
description: 'Klicke auf «Bearbeitung starten» um die Karte zu bearbeiten. Nur ein Benutzer gleichzeitig kann bearbeiten — andere sehen deine Änderungen live.', description: 'Wähle ein Werkzeug und zeichne los — die Bearbeitung startet automatisch. Zeichnet gerade jemand anderes, siehst du dessen Änderungen live und die Karte ist solange gesperrt.',
targetSelector: '[data-tour="edit-toggle"]',
position: 'bottom',
}, },
{ {
title: 'Zeichenwerkzeuge', title: 'Zeichenwerkzeuge',
@@ -62,9 +60,9 @@ const TOUR_STEPS: TourStep[] = [
], ],
}, },
{ {
title: 'Symbole (Drag & Drop)', title: 'Symbole platzieren',
icon: <LayoutGrid className="w-5 h-5 text-orange-500" />, icon: <LayoutGrid className="w-5 h-5 text-orange-500" />,
description: 'Rechts findest du taktische Feuerwehr-Symbole. Deine eigenen Symbole stehen zuoberst. Ziehe Symbole per Drag & Drop auf die Karte. Klicke auf ein platziertes Symbol um es zu drehen, skalieren oder löschen.', description: 'Rechts findest du taktische Feuerwehr-Symbole. Deine eigenen Symbole stehen zuoberst. Symbol antippen und dann auf die Karte tippen — oder per Drag & Drop ziehen. Platzierte Symbole kannst du drehen, skalieren oder löschen.',
targetSelector: '[data-tour="sidebar"]', targetSelector: '[data-tour="sidebar"]',
position: 'left', position: 'left',
}, },