From 66e351e54f69a1c7571ba023ff59d4b771db8776 Mon Sep 17 00:00:00 2001 From: Daniel Michelberger Date: Mon, 7 Sep 2026 22:11:28 +0200 Subject: [PATCH] feat: Team wird zum Menuepunkt mit Submenue MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Das Teamdropdown stand als eigenes Bedienelement neben dem Namen — ein zweiter Schalter fuer eine Sache, die schon einen Menuepunkt hat. Jetzt klappt der Menuepunkt Team beim Ueberfahren auf: die eigenen Teams, ein Klick wechselt und oeffnet die Teamseite, darunter "Team erstellen". Die Zeiger- und Tastenhandler von bits-ui werden am Trigger bewusst ueberschrieben. Deren onclick ruft preventDefault und macht den Link tot, ihr pointerdown klappt zu, was der Hover gerade aufgeklappt hat — zwei Herren ueber dasselbe open, das Ergebnis war Flackern statt Navigation. Das Menue verzichtet zudem auf Fokusfang und Scrollsperre; beides gehoert zu einem Dialog, nicht zu etwas, ueber das der Zeiger nur streift. Der Anlegedialog liegt jetzt als CreateTeamDialog vor: Es gibt zwei Einstiege, und ein neues Team muss an beiden dasselbe bedeuten — Team anlegen, Standardsatz Flag-Typen dazu, ab dann ist es das aktive. Das Logo ragt mit -my-3 leicht ueber die Kopfleiste hinaus, verlinkt aufs Dashboard und teilt sich den Hover mit dessen Menuepunkt. Der aktive Menuepunkt traegt das Primary-Design. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01P32KoesVtABd6xWsqMKzhr --- .../lib/components/CreateTeamDialog.svelte | 76 +++++++ frontend/src/lib/components/Logo.svelte | 8 +- frontend/src/lib/components/TeamMenu.svelte | 116 ++++++++-- frontend/src/routes/dashboard/+layout.svelte | 211 +++++++++++------- 4 files changed, 313 insertions(+), 98 deletions(-) create mode 100644 frontend/src/lib/components/CreateTeamDialog.svelte diff --git a/frontend/src/lib/components/CreateTeamDialog.svelte b/frontend/src/lib/components/CreateTeamDialog.svelte new file mode 100644 index 0000000..d9aaddf --- /dev/null +++ b/frontend/src/lib/components/CreateTeamDialog.svelte @@ -0,0 +1,76 @@ + + + + + + Neues Team + Du wirst automatisch Owner. + +
+
+ + e.key === 'Enter' && submit()} /> +
+ {#if error} +

{error}

+ {/if} +
+ + + + +
+
diff --git a/frontend/src/lib/components/Logo.svelte b/frontend/src/lib/components/Logo.svelte index b58ef14..1790b51 100644 --- a/frontend/src/lib/components/Logo.svelte +++ b/frontend/src/lib/components/Logo.svelte @@ -18,11 +18,11 @@ const url = $derived(team?.logo ? getFileURL(team, team.logo) : null) -