diff --git a/NftFaucetRadzen/Components/BasicComponent.cs b/NftFaucetRadzen/Components/BasicComponent.cs new file mode 100644 index 0000000..719542d --- /dev/null +++ b/NftFaucetRadzen/Components/BasicComponent.cs @@ -0,0 +1,37 @@ +using Microsoft.AspNetCore.Components; +using NftFaucetRadzen.Models; +using NftFaucetRadzen.Options; + +namespace NftFaucetRadzen.Components; + +public abstract class BasicComponent : ComponentBase +{ + [Inject] + protected NavigationManager UriHelper { get; set; } + + [Inject] + protected ScopedAppState AppState { get; set; } + + [Inject] + protected RefreshMediator RefreshMediator { get; set; } + + [Inject] + protected Settings Settings { get; set; } + + protected override void OnInitialized() + { + RefreshMediator.StateChanged += async () => await InvokeAsync(StateHasChangedSafe); + } + + protected void StateHasChangedSafe() + { + try + { + InvokeAsync(StateHasChanged); + } + catch (Exception) + { + // ignored + } + } +} diff --git a/NftFaucetRadzen/Components/BasicLayout.cs b/NftFaucetRadzen/Components/BasicLayout.cs new file mode 100644 index 0000000..c06979e --- /dev/null +++ b/NftFaucetRadzen/Components/BasicLayout.cs @@ -0,0 +1,33 @@ +using Microsoft.AspNetCore.Components; +using NftFaucetRadzen.Models; + +namespace NftFaucetRadzen.Components; + +public abstract class BasicLayout : LayoutComponentBase +{ + [Inject] + protected NavigationManager UriHelper { get; set; } + + [Inject] + protected ScopedAppState AppState { get; set; } + + [Inject] + protected RefreshMediator RefreshMediator { get; set; } + + protected override void OnInitialized() + { + RefreshMediator.StateChanged += async () => await InvokeAsync(StateHasChangedSafe); + } + + protected void StateHasChangedSafe() + { + try + { + InvokeAsync(StateHasChanged); + } + catch (Exception) + { + // ignored + } + } +} diff --git a/NftFaucetRadzen/Components/CardList.razor b/NftFaucetRadzen/Components/CardList.razor index cb32faf..4b31206 100644 --- a/NftFaucetRadzen/Components/CardList.razor +++ b/NftFaucetRadzen/Components/CardList.razor @@ -1,4 +1,5 @@ @using NftFaucetRadzen.Models +@inherits BasicComponent