diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.BasicTheme/Themes/Basic/FirstLevelNavMenuItem.razor b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.BasicTheme/Themes/Basic/FirstLevelNavMenuItem.razor index 0ccd9b93db..32de8507cb 100644 --- a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.BasicTheme/Themes/Basic/FirstLevelNavMenuItem.razor +++ b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.BasicTheme/Themes/Basic/FirstLevelNavMenuItem.razor @@ -1,61 +1,67 @@ -@using Volo.Abp.UI.Navigation +@using Volo.Abp.UI.Navigation @{ - var elementId = MenuItem.ElementId ?? "MenuItem_" + MenuItem.Name.Replace(".", "_"); - var cssClass = string.IsNullOrEmpty(MenuItem.CssClass) ? string.Empty : MenuItem.CssClass; - var disabled = MenuItem.IsDisabled ? "disabled" : string.Empty; - var url = MenuItem.Url == null ? "#" : MenuItem.Url.TrimStart('/', '~'); var customComponentType = MenuItem.GetComponentTypeOrDefault(); } -@if (MenuItem.IsLeaf) + +@if (customComponentType != null && typeof(ComponentBase).IsAssignableFrom(customComponentType)) { - if (customComponentType != null && typeof(ComponentBase).IsAssignableFrom(customComponentType)) - { - - } - else if (MenuItem.Url != null) - { - - } + } else { - + else + { + var itemUrl = item.Url == null ? "#" : item.Url.TrimStart('/', '~'); + + @if (item.Icon != null) + { + + } + + @item.DisplayName + + + } + } + + } diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.BasicTheme/Themes/Basic/FirstLevelNavMenuItem.razor.cs b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.BasicTheme/Themes/Basic/FirstLevelNavMenuItem.razor.cs index 4cdd0ec8a4..ea448c3b7d 100644 --- a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.BasicTheme/Themes/Basic/FirstLevelNavMenuItem.razor.cs +++ b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.BasicTheme/Themes/Basic/FirstLevelNavMenuItem.razor.cs @@ -1,4 +1,5 @@ using System; +using Blazorise; using Microsoft.AspNetCore.Components; using Microsoft.AspNetCore.Components.Routing; using Volo.Abp.UI.Navigation; @@ -7,31 +8,26 @@ namespace Volo.Abp.AspNetCore.Components.Web.BasicTheme.Themes.Basic; public partial class FirstLevelNavMenuItem : IDisposable { - [Inject] private NavigationManager NavigationManager { get; set; } - [Parameter] - public ApplicationMenuItem MenuItem { get; set; } + public ApplicationMenuItem MenuItem { get; set; } = default!; + + private Dropdown _dropdown; - public bool IsSubMenuOpen { get; set; } + [Inject] + private NavigationManager NavigationManager { get; set; } protected override void OnInitialized() { NavigationManager.LocationChanged += OnLocationChanged; } - private void ToggleSubMenu() + protected virtual void OnLocationChanged(object sender, LocationChangedEventArgs e) { - IsSubMenuOpen = !IsSubMenuOpen; + _dropdown?.Hide(); } - public void Dispose() + public virtual void Dispose() { NavigationManager.LocationChanged -= OnLocationChanged; } - - private void OnLocationChanged(object sender, LocationChangedEventArgs e) - { - IsSubMenuOpen = false; - InvokeAsync(StateHasChanged); - } } diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.BasicTheme/Themes/Basic/SecondLevelNavMenuItem.razor b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.BasicTheme/Themes/Basic/SecondLevelNavMenuItem.razor index 9200e83657..2e6f783556 100644 --- a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.BasicTheme/Themes/Basic/SecondLevelNavMenuItem.razor +++ b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.BasicTheme/Themes/Basic/SecondLevelNavMenuItem.razor @@ -1,55 +1,48 @@ -@using Volo.Abp.UI.Navigation +@using Volo.Abp.UI.Navigation @{ - var elementId = MenuItem.ElementId ?? "MenuItem_" + MenuItem.Name.Replace(".", "_"); - var cssClass = string.IsNullOrEmpty(MenuItem.CssClass) ? string.Empty : MenuItem.CssClass; - var disabled = MenuItem.IsDisabled ? "disabled" : string.Empty; - var url = MenuItem.Url == null ? "#" : MenuItem.Url.TrimStart('/', '~'); var customComponentType = MenuItem.GetComponentTypeOrDefault(); } -@if (MenuItem.IsLeaf) + +@if (customComponentType != null && typeof(ComponentBase).IsAssignableFrom(customComponentType)) { - if (customComponentType != null && typeof(ComponentBase).IsAssignableFrom(customComponentType)) - { - - } - else if (MenuItem.Url != null) - { - - @if (MenuItem.Icon != null) - { - - } - - @MenuItem.DisplayName - - - } + } else { - -} \ No newline at end of file + + +} diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.BasicTheme/Themes/Basic/SecondLevelNavMenuItem.razor.cs b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.BasicTheme/Themes/Basic/SecondLevelNavMenuItem.razor.cs index c736770884..b188b764ed 100644 --- a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.BasicTheme/Themes/Basic/SecondLevelNavMenuItem.razor.cs +++ b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.BasicTheme/Themes/Basic/SecondLevelNavMenuItem.razor.cs @@ -1,4 +1,5 @@ using System; +using Blazorise; using Microsoft.AspNetCore.Components; using Microsoft.AspNetCore.Components.Routing; using Volo.Abp.UI.Navigation; @@ -7,31 +8,30 @@ namespace Volo.Abp.AspNetCore.Components.Web.BasicTheme.Themes.Basic; public partial class SecondLevelNavMenuItem : IDisposable { - [Inject] private NavigationManager NavigationManager { get; set; } + [Parameter] + public ApplicationMenuItem MenuItem { get; set; } = default!; [Parameter] - public ApplicationMenuItem MenuItem { get; set; } + public Dropdown ParentDropdown { get; set; } = default!; + + private Dropdown _dropdown; - public bool IsSubMenuOpen { get; set; } + [Inject] + private NavigationManager NavigationManager { get; set; } protected override void OnInitialized() { NavigationManager.LocationChanged += OnLocationChanged; } - private void ToggleSubMenu() + protected virtual void OnLocationChanged(object sender, LocationChangedEventArgs e) { - IsSubMenuOpen = !IsSubMenuOpen; + ParentDropdown?.Hide(); + _dropdown?.Hide(); } - public void Dispose() + public virtual void Dispose() { NavigationManager.LocationChanged -= OnLocationChanged; } - - private void OnLocationChanged(object sender, LocationChangedEventArgs e) - { - IsSubMenuOpen = false; - InvokeAsync(StateHasChanged); - } }