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

@@ -396,8 +396,9 @@ export default function AppPage() {
const ensureEditing = useCallback(() => {
if (!currentProject || presentationLocked || !roleCanEdit) return
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 })
}, [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)
const handleDrawModeChange = useCallback((mode: DrawMode) => {
@@ -799,7 +800,7 @@ export default function AppPage() {
onRedo: handleRedo,
onSave: handleSaveProject,
onDelete: handleFeaturesChange,
onToolChange: setDrawMode,
onToolChange: handleDrawModeChange, // Auto-Bearbeitung greift auch bei Tastenkürzeln
onHelpOpen: useCallback(() => setIsShortcutHelpOpen(true), []),
})

View File

@@ -34,11 +34,9 @@ const TOUR_STEPS: TourStep[] = [
position: 'bottom',
},
{
title: 'Bearbeitung starten',
title: 'Einfach loszeichnen',
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.',
targetSelector: '[data-tour="edit-toggle"]',
position: 'bottom',
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.',
},
{
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" />,
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"]',
position: 'left',
},