diff --git a/src/Blazored.Modal/BlazoredModal.razor b/src/Blazored.Modal/BlazoredModal.razor index fe16c9d..7d39f7f 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 0000000..5eef679 --- /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