From 90e0c47a6a11e206f8f6bc0c130190d525c2e34d Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Mon, 18 Mar 2024 15:42:24 +0800 Subject: [PATCH] Prevent Toolbar flickering problem --- .../Layout/PageHeader.razor.cs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Layout/PageHeader.razor.cs b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Layout/PageHeader.razor.cs index 91485d5bf8..76bffc43a8 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Layout/PageHeader.razor.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Layout/PageHeader.razor.cs @@ -57,6 +57,12 @@ public partial class PageHeader : ComponentBase if (Toolbar != null) { var toolbarItems = await PageToolbarManager.GetItemsAsync(Toolbar); + + if (!ShouldRenderToolbarItems(toolbarItems)) + { + return; + } + ToolbarItemRenders.Clear(); if (!Options.Value.RenderToolbar) @@ -88,6 +94,16 @@ public partial class PageHeader : ComponentBase } } } + + protected virtual bool ShouldRenderToolbarItems(PageToolbarItem[] items) + { + if (items.Length != PageLayout.ToolbarItems.Count) + { + return true; + } + + return items.Where((t, i) => t.ComponentType != PageLayout.ToolbarItems[i].ComponentType).Any(); + } protected async override Task OnInitializedAsync() {