From 17f07c5b6d30ab8790e942ba895bb5f8ba30e06a Mon Sep 17 00:00:00 2001 From: Felipe Costa Gualberto Date: Fri, 10 Oct 2025 20:43:48 -0300 Subject: [PATCH] Fixes #586. --- src/Blazored.Modal/BlazoredModal.razor | 13 ++++++++++--- src/Blazored.Modal/KeyedComponent.razor.cs | 14 ++++++++++++++ 2 files changed, 24 insertions(+), 3 deletions(-) create mode 100644 src/Blazored.Modal/KeyedComponent.razor.cs diff --git a/src/Blazored.Modal/BlazoredModal.razor b/src/Blazored.Modal/BlazoredModal.razor index fe16c9d0..7d39f7f1 100644 --- a/src/Blazored.Modal/BlazoredModal.razor +++ b/src/Blazored.Modal/BlazoredModal.razor @@ -9,7 +9,9 @@ @foreach (var modal in _modals) { - @modal.ModalInstance + } @@ -134,7 +136,7 @@ await _styleFunctions.InvokeVoidAsync("setBodyStyle"); } } - + await InvokeAsync(StateHasChanged); } @@ -150,6 +152,11 @@ } } + private Dictionary KeyedParams(ModalReference modal) => new() + { + [nameof(KeyedComponent.ChildContent)] = modal.ModalInstance + }; + async ValueTask IAsyncDisposable.DisposeAsync() { if (_styleFunctions is not null) @@ -163,6 +170,6 @@ // If the browser is gone, we don't need it to clean up any browser-side state } } - } + } } \ No newline at end of file diff --git a/src/Blazored.Modal/KeyedComponent.razor.cs b/src/Blazored.Modal/KeyedComponent.razor.cs new file mode 100644 index 00000000..5eef679a --- /dev/null +++ b/src/Blazored.Modal/KeyedComponent.razor.cs @@ -0,0 +1,14 @@ +using Microsoft.AspNetCore.Components; +using Microsoft.AspNetCore.Components.Rendering; + +namespace Blazored.Modal; + +internal class KeyedComponent : ComponentBase +{ + [Parameter] public RenderFragment ChildContent { get; set; } = default!; + + protected override void BuildRenderTree(RenderTreeBuilder builder) + { + ChildContent(builder); + } +} \ No newline at end of file