From 245940b40eae7da458c1dca6cc3ddd466d2e4161 Mon Sep 17 00:00:00 2001 From: beo3000 Date: Thu, 25 Dec 2025 16:43:12 +0100 Subject: [PATCH] Add finalized navigation menu (F3) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Dashboard link (all authenticated users) - Spieltage, Personen (club-specific, require selected club) - Stammdaten with Kostenvorlagen (ClubEditor+) - Administration section with Vereine/Benutzer (SuperAdmin) - Profile link for authenticated users 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- .../Components/Layout/NavMenu.razor | 63 ++++++++++++++++--- 1 file changed, 53 insertions(+), 10 deletions(-) diff --git a/src/Koogle.Web/Components/Layout/NavMenu.razor b/src/Koogle.Web/Components/Layout/NavMenu.razor index 337dc62..4f43215 100644 --- a/src/Koogle.Web/Components/Layout/NavMenu.razor +++ b/src/Koogle.Web/Components/Layout/NavMenu.razor @@ -1,23 +1,54 @@ -@inherits FluxorComponent +@using Koogle.Web.Store.ClubState +@inherits FluxorComponent @inject IState AuthState +@inject IState ClubState @inject NavigationManager NavigationManager + @* Dashboard - visible to all authenticated users *@ + + Dashboard + + + @if (AuthState.Value.IsAuthenticated && HasSelectedClub) + { + @* Club-specific navigation - requires selected club *@ + + Spieltage + + + + Personen + + + @if (AuthState.Value.IsClubEditor || AuthState.Value.IsSuperAdmin) + { + + + Kostenvorlagen + + + } + } + @if (AuthState.Value.IsClubEditor || AuthState.Value.IsSuperAdmin) { - @* // Tage und Auswertungen des ausgewählten Vereins *@ - - - - @* // Stammdaten des ausgewählten Vereins *@ - - @* // mandantenübergreifende Verwaltung *@ @if (AuthState.Value.IsSuperAdmin) { } - } + + + + @* Profile - visible to all authenticated users *@ + @if (AuthState.Value.IsAuthenticated) + { + + Profil + + } @code { - + private bool HasSelectedClub => ClubState.Value.SelectedClub != null || + AuthState.Value.CurrentUser?.ClubMemberships?.Any(c => c.IsDefault) == true; }