@@ -580,7 +580,9 @@ protected override async Task OnAfterRenderAsync(bool firstRender)
580580 /// <inheritdoc/>
581581 /// </summary>
582582 /// <returns></returns>
583- protected override Task InvokeInitAsync ( ) => InvokeVoidAsync ( "init" , Id , Interop , nameof ( DragItemCallback ) , Layout ? . Id ) ;
583+ protected override Task InvokeInitAsync ( ) => InvokeVoidAsync ( "init" , Id , Interop , nameof ( DragItemCallback ) , LayoutId ) ;
584+
585+ private string ? LayoutId => Layout is { ShowTabInHeader : true } ? Layout . Id : null ;
584586
585587 private void RemoveLocationChanged ( )
586588 {
@@ -1132,6 +1134,80 @@ private async Task OnContextMenu(MouseEventArgs e, TabItem item)
11321134 }
11331135 }
11341136
1137+ private RenderFragment RenderTabList ( ) => builder =>
1138+ {
1139+ if ( ! Items . Any ( ) && ! string . IsNullOrEmpty ( DefaultUrl ) )
1140+ {
1141+ if ( ClickTabToNavigation )
1142+ {
1143+ Navigator . NavigateTo ( DefaultUrl ) ;
1144+ }
1145+ else
1146+ {
1147+ AddTabItem ( DefaultUrl ) ;
1148+ }
1149+ }
1150+
1151+ if ( FirstRender )
1152+ {
1153+ if ( ! Items . Any ( t => t . IsActive ) )
1154+ {
1155+ Items . FirstOrDefault ( i => i . IsDisabled == false ) ? . SetActive ( true ) ;
1156+ }
1157+ }
1158+
1159+ if ( ShowContextMenu )
1160+ {
1161+ builder . OpenComponent < ContextMenuZone > ( 0 ) ;
1162+ builder . AddAttribute ( 10 , nameof ( ContextMenuZone . ChildContent ) , RenderContextMenuZoneContent ( ) ) ;
1163+ builder . AddComponentReferenceCapture ( 20 , instance => _contextMenuZone = ( ContextMenuZone ) instance ) ;
1164+ builder . CloseComponent ( ) ;
1165+ }
1166+ else
1167+ {
1168+ builder . AddContent ( 150 , RenderTabItems ( ) ) ;
1169+ }
1170+
1171+ if ( TabStyle == TabStyle . Default && ( IsCard || IsBorderCard ) )
1172+ {
1173+ builder . OpenElement ( 200 , "div" ) ;
1174+ builder . AddAttribute ( 210 , "class" , "tabs-item-fix" ) ;
1175+ builder . CloseElement ( ) ;
1176+ }
1177+ } ;
1178+
1179+ private RenderFragment RenderContextMenuZoneContent ( ) => builder =>
1180+ {
1181+ builder . AddContent ( 0 , RenderTabItems ( ) ) ;
1182+ builder . AddContent ( 10 , RenderContextMenu ) ;
1183+ } ;
1184+
1185+ private RenderFragment RenderTabItems ( ) => builder =>
1186+ {
1187+ for ( var index = 0 ; index < _items . Count ; index ++ )
1188+ {
1189+ var item = _items [ index ] ;
1190+ var sequence = ( index + 1 ) * 100 ;
1191+ if ( item . HeaderTemplate != null )
1192+ {
1193+ builder . OpenElement ( sequence , "div" ) ;
1194+ builder . SetKey ( item ) ;
1195+ builder . AddAttribute ( sequence + 10 , "class" , GetItemWrapClassString ( item ) ) ;
1196+ builder . AddAttribute ( sequence + 20 , "draggable" , DraggableString ) ;
1197+ builder . AddContent ( sequence + 30 , item . HeaderTemplate ( item ) ) ;
1198+ builder . CloseElement ( ) ;
1199+ }
1200+ else if ( item . IsDisabled )
1201+ {
1202+ builder . AddContent ( sequence + 40 , RenderDisabledHeaderItem ( item ) ) ;
1203+ }
1204+ else
1205+ {
1206+ builder . AddContent ( sequence + 50 , RenderHeaderItem ( item ) ) ;
1207+ }
1208+ }
1209+ } ;
1210+
11351211 /// <summary>
11361212 /// <inheritdoc/>
11371213 /// </summary>
0 commit comments