Neue navbar
This commit is contained in:
@@ -2,26 +2,27 @@
|
||||
@inject AuthenticationStateProvider AuthStateProvider
|
||||
@inject NavigationManager Nav
|
||||
@inject IUserNotificationService UserNotificationService
|
||||
@inject IJSRuntime JSRuntime
|
||||
@implements IDisposable
|
||||
@using System.Security.Claims
|
||||
|
||||
<MudThemeProvider Theme="_theme" />
|
||||
<MudThemeProvider Theme="_theme" @bind-IsDarkMode="_isDarkMode" />
|
||||
<MudPopoverProvider />
|
||||
<MudDialogProvider />
|
||||
<MudSnackbarProvider />
|
||||
|
||||
<MudLayout>
|
||||
<MudAppBar Elevation="2" Style="background: #0F172A;">
|
||||
<MudIconButton Icon="@Icons.Material.Filled.Menu" Color="Color.Inherit" Edge="Edge.Start" OnClick="ToggleDrawer" />
|
||||
<MudStack Row="true" AlignItems="AlignItems.Center" Spacing="2" Class="ml-2">
|
||||
<MudIcon Icon="@Icons.Material.Filled.AccessTime" Style="color:white; font-size:1.6rem" />
|
||||
<MudText Typo="Typo.h6" Style="color:white; font-weight:700; letter-spacing:0.5px">Timetracker</MudText>
|
||||
</MudStack>
|
||||
<MudAppBar Elevation="0" Style="background: #0F172A; border-bottom: 1px solid rgba(255, 255, 255, 0.08);">
|
||||
<MudIconButton Icon="@Icons.Material.Filled.Menu" Color="Color.Inherit" Edge="Edge.Start" OnClick="ToggleDrawer" Class="d-flex d-md-none mr-2" />
|
||||
<MudSpacer />
|
||||
<MudIconButton Icon="@(_isDarkMode ? Icons.Material.Filled.LightMode : Icons.Material.Filled.DarkMode)"
|
||||
Color="Color.Inherit"
|
||||
OnClick="ToggleDarkMode"
|
||||
Class="mr-2" />
|
||||
</MudAppBar>
|
||||
|
||||
<MudDrawer @bind-Open="_drawerOpen" ClipMode="DrawerClipMode.Always" Elevation="2">
|
||||
<NavMenu />
|
||||
<MudDrawer @bind-Open="_drawerOpen" ClipMode="DrawerClipMode.Never" Elevation="0" Variant="DrawerVariant.Mini" OpenMiniOnHover="false" Class="modern-drawer">
|
||||
<NavMenu OnToggleDrawer="ToggleDrawer" />
|
||||
</MudDrawer>
|
||||
|
||||
<MudMainContent>
|
||||
@@ -39,12 +40,39 @@
|
||||
|
||||
@code {
|
||||
private bool _drawerOpen = true;
|
||||
private bool _isDarkMode;
|
||||
|
||||
protected override void OnInitialized()
|
||||
{
|
||||
UserNotificationService.OnUserDeleted += HandleUserDeleted;
|
||||
}
|
||||
|
||||
protected override async Task OnAfterRenderAsync(bool firstRender)
|
||||
{
|
||||
if (firstRender)
|
||||
{
|
||||
try
|
||||
{
|
||||
var saved = await JSRuntime.InvokeAsync<string>("localStorage.getItem", "darkMode");
|
||||
if (!string.IsNullOrEmpty(saved))
|
||||
{
|
||||
_isDarkMode = bool.Parse(saved);
|
||||
StateHasChanged();
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
// Ignored during prerendering/SSR
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private async Task ToggleDarkMode()
|
||||
{
|
||||
_isDarkMode = !_isDarkMode;
|
||||
await JSRuntime.InvokeVoidAsync("localStorage.setItem", "darkMode", _isDarkMode.ToString().ToLower());
|
||||
}
|
||||
|
||||
private async Task HandleUserDeleted(int deletedUserId)
|
||||
{
|
||||
var state = await AuthStateProvider.GetAuthenticationStateAsync();
|
||||
@@ -71,10 +99,31 @@
|
||||
SecondaryDarken = "#0284C7",
|
||||
AppbarBackground = "#0F172A",
|
||||
Background = "#F8FAFC",
|
||||
DrawerBackground = "#FFFFFF",
|
||||
DrawerBackground = "#0F172A",
|
||||
DrawerText = "#94A3B8",
|
||||
DrawerIcon = "#94A3B8",
|
||||
Surface = "#FFFFFF",
|
||||
TextPrimary = "#0F172A",
|
||||
TextSecondary = "#475569",
|
||||
},
|
||||
PaletteDark = new PaletteDark
|
||||
{
|
||||
Primary = "#0EA5E9",
|
||||
PrimaryDarken = "#0284C7",
|
||||
PrimaryLighten = "#38BDF8",
|
||||
Secondary = "#0EA5E9",
|
||||
SecondaryDarken = "#0284C7",
|
||||
AppbarBackground = "#0F172A",
|
||||
AppbarText = "#F8FAFC",
|
||||
Background = "#0B0F19",
|
||||
DrawerBackground = "#0F172A",
|
||||
DrawerText = "#94A3B8",
|
||||
DrawerIcon = "#94A3B8",
|
||||
Surface = "#1E293B",
|
||||
TextPrimary = "#F8FAFC",
|
||||
TextSecondary = "#94A3B8",
|
||||
ActionDefault = "#94A3B8",
|
||||
Divider = "rgba(255, 255, 255, 0.08)",
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user