Huge updates
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
@inject IJSRuntime JSRuntime
|
||||
<div class="nav-container onboarding-nav-menu">
|
||||
@* --- Brand / Logo Section --- *@
|
||||
<div class="nav-header">
|
||||
@@ -50,18 +51,20 @@
|
||||
<div class="nav-footer">
|
||||
<AuthorizeView>
|
||||
<Authorized>
|
||||
<div class="user-profile-card">
|
||||
<div class="avatar-container">
|
||||
<MudAvatar Class="user-avatar">
|
||||
@GetInitials(context.User.Identity?.Name)
|
||||
</MudAvatar>
|
||||
<span class="status-dot"></span>
|
||||
<NavLink href="/profile" class="user-profile-link">
|
||||
<div class="user-profile-card">
|
||||
<div class="avatar-container">
|
||||
<MudAvatar Class="user-avatar">
|
||||
@GetInitials(context.User.Identity?.Name)
|
||||
</MudAvatar>
|
||||
<span class="status-dot"></span>
|
||||
</div>
|
||||
<div class="user-info">
|
||||
<span class="user-name">@context.User.Identity?.Name</span>
|
||||
<span class="user-status">Online</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="user-info">
|
||||
<span class="user-name">@context.User.Identity?.Name</span>
|
||||
<span class="user-status">Online</span>
|
||||
</div>
|
||||
</div>
|
||||
</NavLink>
|
||||
</Authorized>
|
||||
</AuthorizeView>
|
||||
|
||||
@@ -74,8 +77,12 @@
|
||||
</Authorized>
|
||||
</AuthorizeView>
|
||||
<MudTooltip Text="Changelog anzeigen" Placement="Placement.Right">
|
||||
<MudNavLink Href="/changelog" Icon="@Icons.Material.Filled.NewReleases" Class="custom-nav-link version-link">
|
||||
<span class="version-text">Version 1.4</span>
|
||||
<MudNavLink Href="/changelog" Icon="@Icons.Material.Filled.NewReleases" Class="custom-nav-link version-link" OnClick="ClearBadge">
|
||||
<span class="version-text">Version @timetracker.Client.Components.Pages.Changelog.LatestVersion</span>
|
||||
@if (_showVersionBadge)
|
||||
{
|
||||
<span class="version-badge">1</span>
|
||||
}
|
||||
</MudNavLink>
|
||||
</MudTooltip>
|
||||
</MudNavMenu>
|
||||
@@ -85,6 +92,33 @@
|
||||
@code {
|
||||
[Parameter] public EventCallback OnToggleDrawer { get; set; }
|
||||
|
||||
private bool _showVersionBadge;
|
||||
|
||||
protected override async Task OnAfterRenderAsync(bool firstRender)
|
||||
{
|
||||
if (firstRender)
|
||||
{
|
||||
try
|
||||
{
|
||||
var lastSeen = await JSRuntime.InvokeAsync<string>("localStorage.getItem", "lastSeenVersion");
|
||||
var latest = timetracker.Client.Components.Pages.Changelog.LatestVersion;
|
||||
var isHighlighted = timetracker.Client.Components.Pages.Changelog.IsLatestHighlighted;
|
||||
|
||||
_showVersionBadge = isHighlighted && lastSeen != latest;
|
||||
StateHasChanged();
|
||||
}
|
||||
catch
|
||||
{
|
||||
// Ignored in SSR
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void ClearBadge()
|
||||
{
|
||||
_showVersionBadge = false;
|
||||
}
|
||||
|
||||
private string GetInitials(string? name)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(name))
|
||||
|
||||
Reference in New Issue
Block a user