diff --git a/src/Blazored.Modal/BlazoredModalInstance.razor.cs b/src/Blazored.Modal/BlazoredModalInstance.razor.cs index bca1b08..f61ce97 100644 --- a/src/Blazored.Modal/BlazoredModalInstance.razor.cs +++ b/src/Blazored.Modal/BlazoredModalInstance.razor.cs @@ -79,6 +79,12 @@ protected override async Task OnAfterRenderAsync(bool firstRender) public void SetTitle(string title) { Title = title; + + if (FocusTrap is not null) + { + FocusTrap.SetRenderRequest(); + } + StateHasChanged(); } diff --git a/src/Blazored.Modal/FocusTrap.razor b/src/Blazored.Modal/FocusTrap.razor index a6e11e7..5177993 100644 --- a/src/Blazored.Modal/FocusTrap.razor +++ b/src/Blazored.Modal/FocusTrap.razor @@ -13,12 +13,21 @@ private ElementReference _endFirst; private ElementReference _endSecond; private bool _shiftPressed; + private bool _renderRequest; [Parameter] public RenderFragment ChildContent { get; set; } = default!; [Parameter] public bool IsActive { get; set; } protected override bool ShouldRender() - => false; + { + if (_renderRequest) + { + _renderRequest = false; + return true; + } + + return false; + } protected override async Task OnAfterRenderAsync(bool firstRender) { @@ -54,4 +63,7 @@ _shiftPressed = args.ShiftKey; } } + + internal void SetRenderRequest() + => _renderRequest = true; } \ No newline at end of file