@@ -419,8 +419,14 @@ public partial class Tab : IHandlerException
419419 [ Parameter ]
420420 public Func < TabItem , Task < bool > > ? OnBeforeShowContextMenu { get ; set ; }
421421
422+ /// <summary>
423+ /// Gets or sets the <see cref="ITabHeader"/> instance. Default is null.
424+ /// </summary>
425+ [ Parameter ]
426+ public Layout ? Layout { get ; set ; }
427+
422428 [ CascadingParameter ]
423- private Layout ? Layout { get ; set ; }
429+ private Layout ? CascadeLayout { get ; set ; }
424430
425431 [ Inject ]
426432 [ NotNull ]
@@ -465,7 +471,7 @@ public partial class Tab : IHandlerException
465471
466472 private bool IsPreventDefault => _contextMenuZone != null ;
467473
468- internal LayoutTabHeader ? layoutTabHeader = null ;
474+ internal ITabHeader ? TabHeader { get ; set ; }
469475
470476 /// <summary>
471477 /// <inheritdoc/>
@@ -786,6 +792,8 @@ public void AddTab(string url, string text, string? icon = null, bool active = t
786792 StateHasChanged ( ) ;
787793 }
788794
795+ private Layout ? LayoutInstance => Layout ?? CascadeLayout ;
796+
789797 private void AddTabItem ( string url )
790798 {
791799 var parameters = new Dictionary < string , object ? >
@@ -823,7 +831,7 @@ private void AddTabItem(string url)
823831 builder . AddAttribute ( 1 , nameof ( BootstrapBlazorAuthorizeView . Type ) , context . Handler ) ;
824832 builder . AddAttribute ( 2 , nameof ( BootstrapBlazorAuthorizeView . Parameters ) , context . Parameters ) ;
825833 builder . AddAttribute ( 3 , nameof ( BootstrapBlazorAuthorizeView . NotAuthorized ) , NotAuthorized ) ;
826- builder . AddAttribute ( 4 , nameof ( BootstrapBlazorAuthorizeView . Resource ) , Layout ? . Resource ) ;
834+ builder . AddAttribute ( 4 , nameof ( BootstrapBlazorAuthorizeView . Resource ) , LayoutInstance ? . Resource ) ;
827835 builder . CloseComponent ( ) ;
828836 } ) ) ;
829837 }
@@ -1005,7 +1013,7 @@ private RenderFragment RenderTabItemContent(TabItem item) => builder =>
10051013 private IEnumerable < MenuItem > ? _menuItems ;
10061014 private MenuItem ? GetMenuItem ( string url )
10071015 {
1008- _menuItems ??= ( Menus ?? Layout ? . Menus ) . GetAllItems ( ) ;
1016+ _menuItems ??= ( Menus ?? LayoutInstance ? . Menus ) . GetAllItems ( ) ;
10091017 return _menuItems ? . FirstOrDefault ( i => ! string . IsNullOrEmpty ( i . Url ) && ( i . Url . TrimStart ( '/' ) . Equals ( url . TrimStart ( '/' ) , StringComparison . OrdinalIgnoreCase ) ) ) ;
10101018 }
10111019
0 commit comments