diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Server.MudBlazorBasicTheme/MudBlazorBasicThemeToolbarContributor.cs b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Server.MudBlazorBasicTheme/MudBlazorBasicThemeToolbarContributor.cs
index 0ba46719c4..d0c9390a62 100644
--- a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Server.MudBlazorBasicTheme/MudBlazorBasicThemeToolbarContributor.cs
+++ b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Server.MudBlazorBasicTheme/MudBlazorBasicThemeToolbarContributor.cs
@@ -11,8 +11,8 @@ public class MudBlazorBasicThemeToolbarContributor : IToolbarContributor
{
if (context.Toolbar.Name == StandardToolbars.Main)
{
- context.Toolbar.Items.Add(new ToolbarItem(typeof(LoginDisplay)));
context.Toolbar.Items.Add(new ToolbarItem(typeof(LanguageSwitch)));
+ context.Toolbar.Items.Add(new ToolbarItem(typeof(LoginDisplay)));
}
return Task.CompletedTask;
diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme/Themes/Basic/Branding.razor b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme/Themes/Basic/Branding.razor
deleted file mode 100644
index 74c3ec441c..0000000000
--- a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme/Themes/Basic/Branding.razor
+++ /dev/null
@@ -1,5 +0,0 @@
-@using Volo.Abp.Ui.Branding
-@using MudBlazor
-@inject IBrandingProvider BrandingProvider
-
-@BrandingProvider.AppName
diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme/Themes/Basic/MainLayout.razor b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme/Themes/Basic/MainLayout.razor
index c1db9951af..0fe9afa36c 100644
--- a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme/Themes/Basic/MainLayout.razor
+++ b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme/Themes/Basic/MainLayout.razor
@@ -15,14 +15,12 @@
Color="Color.Inherit"
Edge="Edge.Start"
OnClick="@ToggleDrawer" />
-
diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme/Themes/Basic/NavMenu.razor b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme/Themes/Basic/NavMenu.razor
index 90c4e73797..49cea6c059 100644
--- a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme/Themes/Basic/NavMenu.razor
+++ b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme/Themes/Basic/NavMenu.razor
@@ -1,10 +1,14 @@
-@using Microsoft.AspNetCore.Components.Routing
-@if (Menu != null)
-{
-
- @foreach (var menuItem in Menu.Items)
+@using Volo.Abp.Ui.Branding
+@inject IBrandingProvider BrandingProvider
+
+
+ @BrandingProvider.AppName
+
+ @if(Menu != null && !Menu.Items.IsNullOrEmpty())
+ {
+ foreach (var menuItem in Menu.Items)
{
- @if (menuItem.Items.IsNullOrEmpty())
+ if (menuItem.Items.IsNullOrEmpty())
{
@@ -13,8 +17,8 @@
}
else
{
-
+
}
}
-
-}
+ }
+
diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme/Themes/Basic/FirstLevelNavMenuItem.razor b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme/Themes/Basic/NavMenuItem.razor
similarity index 73%
rename from modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme/Themes/Basic/FirstLevelNavMenuItem.razor
rename to modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme/Themes/Basic/NavMenuItem.razor
index 57827f06a6..68cd499dc5 100644
--- a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme/Themes/Basic/FirstLevelNavMenuItem.razor
+++ b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme/Themes/Basic/NavMenuItem.razor
@@ -13,7 +13,7 @@
}
else
{
-
+
@MenuItem.DisplayName
@@ -23,7 +23,7 @@ else
{
@if (item.Items.Any())
{
-
+
}
else
{
@@ -54,6 +54,22 @@ else
// Menu will close automatically on navigation
}
+ protected virtual bool IsExpanded(ApplicationMenuItem item)
+ {
+ if (!item.Url.IsNullOrEmpty())
+ {
+ var menuItemPath = item.Url.Replace("~/", string.Empty).Trim('/');
+ var currentPagePath = new Uri(NavigationManager.Uri.TrimEnd('/')).AbsolutePath.Trim('/');
+
+ if (menuItemPath.TrimEnd('/').Equals(currentPagePath, StringComparison.OrdinalIgnoreCase))
+ {
+ return true;
+ }
+ }
+
+ return item.Items.Any(IsExpanded);
+ }
+
public void Dispose()
{
NavigationManager.LocationChanged -= OnLocationChanged;
diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme/Themes/Basic/SecondLevelNavMenuItem.razor b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme/Themes/Basic/SecondLevelNavMenuItem.razor
deleted file mode 100644
index 589e8d644f..0000000000
--- a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.MudBlazorBasicTheme/Themes/Basic/SecondLevelNavMenuItem.razor
+++ /dev/null
@@ -1,56 +0,0 @@
-@using Volo.Abp.UI.Navigation
-@using MudBlazor
-@using Microsoft.AspNetCore.Components
-@using Microsoft.AspNetCore.Components.Routing
-@using System
-@{
- var customComponentType = MenuItem.GetComponentTypeOrDefault();
-}
-
-@if (customComponentType != null && typeof(ComponentBase).IsAssignableFrom(customComponentType))
-{
-
-}
-else
-{
-
-
-
- @MenuItem.DisplayName
-
-
- @foreach (var item in MenuItem.Items)
- {
-
-
- @item.DisplayName
-
- }
-
-
-}
-
-@code {
- [Parameter]
- public ApplicationMenuItem MenuItem { get; set; } = default!;
-
- [Inject]
- private NavigationManager NavigationManager { get; set; } = default!;
-
- protected override void OnInitialized()
- {
- NavigationManager.LocationChanged += OnLocationChanged;
- }
-
- protected virtual void OnLocationChanged(object? sender, LocationChangedEventArgs e)
- {
- // Menu will close automatically on navigation
- }
-
- public void Dispose()
- {
- NavigationManager.LocationChanged -= OnLocationChanged;
- }
-}
-
-@implements IDisposable