Extract shared header and skill group block components

This commit is contained in:
2026-02-26 18:07:01 +01:00
parent 51d04fcdc5
commit a56b3fc451
11 changed files with 434 additions and 262 deletions

View File

@@ -14,59 +14,19 @@
}
<div class="workspace-shell">
<header class="workspace-header">
<div class="header-row">
<h1>RpgRoller</h1>
@if (User is null)
{
<p class="header-identity"><strong>Loading user...</strong></p>
}
else
{
<p class="header-identity"><strong>@User.DisplayName</strong> <span class="muted">(@User.Username)</span></p>
}
<p class="header-campaign">Campaign: <strong>@(SelectedCampaignName ?? "No campaign selected")</strong></p>
<div class="header-connection-cell">
<p class="connection @ConnectionStateCssClass">@ConnectionStateLabel</p>
</div>
<a href="" class="logout-link" @onclick:preventDefault="true" @onclick="LogoutAsync">Logout</a>
<div class="header-menu-wrap">
<button
id="screen-menu-button"
type="button"
class="menu-toggle"
aria-haspopup="true"
aria-expanded="@IsScreenMenuOpen"
aria-controls="screen-menu"
@onclick="ToggleScreenMenu">
<span aria-hidden="true">☰</span>
</button>
@if (IsScreenMenuOpen)
{
<div id="screen-menu" class="screen-menu" role="menu" aria-labelledby="screen-menu-button">
<button type="button"
class="menu-item @(IsPlayScreen ? "active" : string.Empty)"
role="menuitem"
@onclick="SwitchToPlayAsync">Play
</button>
<button type="button"
class="menu-item @(IsManagementScreen ? "active" : string.Empty)"
role="menuitem"
@onclick="SwitchToManagementAsync">Campaign Management
</button>
@if (IsCurrentUserAdmin)
{
<button type="button"
class="menu-item"
role="menuitem"
@onclick="OpenAdminAsync">Admin
</button>
}
</div>
}
</div>
</div>
</header>
<AppHeader
User="User"
ShowCampaign="true"
CampaignName="SelectedCampaignName"
ShowConnectionState="true"
ConnectionStateLabel="ConnectionStateLabel"
ConnectionStateCssClass="ConnectionStateCssClass"
IsMenuOpen="IsScreenMenuOpen"
MenuButtonId="workspace-screen-menu-button"
MenuId="workspace-screen-menu"
MenuItems="HeaderMenuItems"
ToggleMenuRequested="ToggleScreenMenu"
LogoutRequested="LogoutAsync"/>
@if (IsPlayScreen)
{