diff --git a/src/RolemasterDb.App/Components/Shared/CriticalCellCurationDialog.razor b/src/RolemasterDb.App/Components/Shared/CriticalCellCurationDialog.razor index 047f55e..cc8a42f 100644 --- a/src/RolemasterDb.App/Components/Shared/CriticalCellCurationDialog.razor +++ b/src/RolemasterDb.App/Components/Shared/CriticalCellCurationDialog.razor @@ -191,19 +191,24 @@ private IJSObjectReference? jsModule; private bool isBackdropPointerDown; private CriticalCellQuickParseEditor? quickParseEditor; + private bool shouldFocusQuickParseEditor; protected override async Task OnAfterRenderAsync(bool firstRender) { - if (!firstRender) + if (firstRender) { - return; + jsModule = await JSRuntime.InvokeAsync( + "import", + "./Components/Shared/CriticalCellEditorDialog.razor.js"); + + await jsModule.InvokeVoidAsync("lockBackgroundScroll"); } - jsModule = await JSRuntime.InvokeAsync( - "import", - "./Components/Shared/CriticalCellEditorDialog.razor.js"); - - await jsModule.InvokeVoidAsync("lockBackgroundScroll"); + if (shouldFocusQuickParseEditor && quickParseEditor is not null) + { + shouldFocusQuickParseEditor = false; + await quickParseEditor.FocusAsync(); + } } public async ValueTask DisposeAsync() @@ -299,4 +304,12 @@ IsQuickParseMode && !string.IsNullOrWhiteSpace(QuickParseErrorMessage) ? QuickParseErrorMessage : ErrorMessage; + + protected override void OnParametersSet() + { + if (IsQuickParseMode && quickParseEditor is null) + { + shouldFocusQuickParseEditor = true; + } + } } diff --git a/src/RolemasterDb.App/Components/Shared/CriticalCellQuickParseEditor.razor b/src/RolemasterDb.App/Components/Shared/CriticalCellQuickParseEditor.razor index e3c909f..b07cb8a 100644 --- a/src/RolemasterDb.App/Components/Shared/CriticalCellQuickParseEditor.razor +++ b/src/RolemasterDb.App/Components/Shared/CriticalCellQuickParseEditor.razor @@ -1,6 +1,7 @@ @using Microsoft.AspNetCore.Components.Web