fix(ui): Freigeben-Button in Topbar + Toolbar-Farben nicht mehr abgeschnitten (v1.6.7)
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 32m5s

- Freigeben: prominenter grüner Button neben Speichern, sichtbar solange man
  den Bearbeitungs-Lock hält (war nur als versteckter Link in der Statuszeile)
- Linke Toolbar kompakter (flachere Buttons/Trenner, pb-3), damit Farben und
  Linienstärke auf kleineren Screens nicht mehr unten rauslaufen

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Pepe Ziberi
2026-07-22 22:34:30 +02:00
parent 3a5c7419f9
commit 471690550f
4 changed files with 40 additions and 13 deletions

View File

@@ -80,6 +80,12 @@ interface TopbarProps {
onTogglePresentationLock?: () => void
/** Windrichtung wird live aktualisiert (für die Live-Anzeige oben) */
windLive?: boolean
/** true, wenn der aktuelle Nutzer den Bearbeitungs-Lock hält */
isEditingByMe?: boolean
/** Karte speichern & für andere freigeben (Lock lösen) */
onStopEditing?: () => void
/** Lock-Aktion läuft gerade */
editingLoading?: boolean
}
export function Topbar({
@@ -107,6 +113,9 @@ export function Topbar({
presentationLocked,
onTogglePresentationLock,
windLive,
isEditingByMe,
onStopEditing,
editingLoading,
}: TopbarProps) {
const [isLoadDialogOpen, setIsLoadDialogOpen] = useState(false)
const [isHoseSettingsOpen, setIsHoseSettingsOpen] = useState(false)
@@ -236,6 +245,21 @@ export function Topbar({
{isSaving ? <Loader2 className="w-5 h-5 animate-spin" /> : <Save className="w-5 h-5" />}
</Button>
{/* Freigeben — nur sichtbar, solange ich den Bearbeitungs-Lock halte.
Speichert und gibt die Karte für andere frei. Grün = ich bin am Zeichnen. */}
{isEditingByMe && onStopEditing && (
<Button
variant="outline"
className="h-9 md:h-10 px-2 md:px-2.5 shrink-0 border-green-500 text-green-700 hover:bg-green-50 dark:text-green-400 dark:hover:bg-green-950/40"
onClick={onStopEditing}
disabled={editingLoading}
title="Karte speichern & für andere freigeben"
>
{editingLoading ? <Loader2 className="w-5 h-5 animate-spin lg:mr-1" /> : <Unlock className="w-5 h-5 lg:mr-1" />}
<span className="hidden lg:inline">Freigeben</span>
</Button>
)}
{/* Neu — Split-Button für Einsatz/Übung (ein Akzent statt zwei farbiger Buttons) */}
<DropdownMenu>
<DropdownMenuTrigger asChild>