From d6e354e8bf479219c53e19e04099b4e2da827cae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Thu, 11 Nov 2021 09:13:14 +0300 Subject: [PATCH] LoginDisplay unsubscribe from AuthenticationStateChanged --- .../Themes/Basic/NavMenu.razor.cs | 2 +- .../Themes/Basic/LoginDisplay.razor.cs | 18 +++++++++++++----- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.BasicTheme/Themes/Basic/NavMenu.razor.cs b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.BasicTheme/Themes/Basic/NavMenu.razor.cs index d45f9062fd..eba195a9e3 100644 --- a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.BasicTheme/Themes/Basic/NavMenu.razor.cs +++ b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.BasicTheme/Themes/Basic/NavMenu.razor.cs @@ -30,7 +30,7 @@ namespace Volo.Abp.AspNetCore.Components.Web.BasicTheme.Themes.Basic private async void AuthenticationStateProviderOnAuthenticationStateChanged(Task task) { Menu = await MenuManager.GetMainMenuAsync(); - StateHasChanged(); + await InvokeAsync(StateHasChanged); } } } diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Themes/Basic/LoginDisplay.razor.cs b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Themes/Basic/LoginDisplay.razor.cs index 0ec9caa23c..285e0a59da 100644 --- a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Themes/Basic/LoginDisplay.razor.cs +++ b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Themes/Basic/LoginDisplay.razor.cs @@ -34,11 +34,8 @@ namespace Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme.Themes.Basic if (AuthenticationStateProvider != null) { - AuthenticationStateProvider.AuthenticationStateChanged += async (task) => - { - Menu = await MenuManager.GetAsync(StandardMenus.User); - await InvokeAsync(StateHasChanged); - }; + AuthenticationStateProvider.AuthenticationStateChanged += + AuthenticationStateProviderOnAuthenticationStateChanged; } } @@ -46,10 +43,21 @@ namespace Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme.Themes.Basic { InvokeAsync(StateHasChanged); } + + private async void AuthenticationStateProviderOnAuthenticationStateChanged(Task task) + { + Menu = await MenuManager.GetAsync(StandardMenus.User); + await InvokeAsync(StateHasChanged); + } public void Dispose() { Navigation.LocationChanged -= OnLocationChanged; + if (AuthenticationStateProvider != null) + { + AuthenticationStateProvider.AuthenticationStateChanged -= + AuthenticationStateProviderOnAuthenticationStateChanged; + } } private async Task NavigateToAsync(string uri, string target = null)