private void DragStart(XTab tab) { _isDragging = true; _isDraggedTab = tab; return; }
private void RenderXTabs(RenderFragment pageFragment, bool resetXTabs = false) { var xTabTitle = RouteData.PageType.Name; var xTabCssClass = string.Empty; var xTabInactiveRender = false; var pageAttr = RouteData.PageType.GetCustomAttribute <XTabPageAttribute>(); if (pageAttr is not null) { xTabTitle = pageAttr.Title; xTabCssClass = pageAttr.CssClass; xTabInactiveRender = pageAttr.InactiveRender; } if (_xTabs is null) { var xTabFragment = new RenderFragment(rBuilder => { rBuilder.OpenComponent(0, typeof(XTab)); rBuilder.AddAttribute(1, nameof(XTab.ChildContent), pageFragment); rBuilder.AddAttribute(2, nameof(XTab.Title), xTabTitle); rBuilder.AddAttribute(3, nameof(XTab.CssClass), xTabCssClass); rBuilder.AddAttribute(4, nameof(XTab.InactiveRender), xTabInactiveRender); rBuilder.CloseComponent(); }); _xTabsRenderFragment = new RenderFragment(rBuilder => { rBuilder.OpenComponent <XTabs>(0); rBuilder.AddAttribute(1, nameof(XTabs.RenderMode), RenderMode); rBuilder.AddAttribute(2, nameof(XTabs.CloseTabs), CloseTabs); rBuilder.AddAttribute(3, nameof(XTabs.NewTabSetActive), NewTabSetActive); rBuilder.AddAttribute(4, nameof(XTabs.ChildContent), xTabFragment); rBuilder.AddAttribute(5, nameof(XTabs.PreviousStepsContent), PreviousStepsContent); rBuilder.AddAttribute(6, nameof(XTabs.NextStepsContent), NextStepsContent); rBuilder.AddAttribute(7, nameof(XTabs.CssClass), CssClass); rBuilder.AddAttribute(8, nameof(XTabs.OnTabAdded), OnTabAdded); rBuilder.AddAttribute(9, nameof(XTabs.OnActiveTabChanged), OnActiveTabChanged); rBuilder.AddAttribute(10, nameof(XTabs.OnTabRemoved), OnTabRemoved); rBuilder.AddAttribute(11, nameof(XTabs.OnPreviousSteps), OnPreviousSteps); rBuilder.AddAttribute(12, nameof(XTabs.OnNextSteps), OnNextSteps); rBuilder.AddAttribute(13, nameof(XTabs.IsLoading), IsLoading); rBuilder.AddAttribute(14, nameof(XTabs.IsDraggable), IsDraggable); rBuilder.AddAttribute(15, nameof(XTabs.CloseAllTabs), CloseAllTabs); rBuilder.AddAttribute(16, nameof(XTabs.ShowCloseAllTabsButton), ShowCloseAllTabsButton); rBuilder.AddAttribute(17, nameof(XTabs.CloseAllTabsButtonThreshold), CloseAllTabsButtonThreshold); rBuilder.AddAttribute(18, nameof(XTabs.NoTabsNavigatesToHomepage), NoTabsNavigatesToHomepage); rBuilder.AddAttribute(19, nameof(XTabs.JustifiedHeader), JustifiedHeader); rBuilder.AddComponentReferenceCapture(100, compRef => _xTabs = (XTabs)compRef); rBuilder.CloseComponent(); }); } else { var xtab = new XTab(_xTabs, xTabTitle, pageFragment, xTabCssClass, xTabInactiveRender); if (resetXTabs) { _xTabs.AddOrReplacePage(xtab); } else { _xTabs.AddPage(xtab); } } }
/// <summary> /// Checks if tab is active. /// </summary> /// <param name="tab"></param> /// <returns></returns> public bool IsActive(XTab tab) => tab == Active;