Browse Source

Wrap MudBlazor UI calls with InvokeAsync to fix Dispatcher race in InteractiveServer mode

pull/25349/head
maliming 3 weeks ago
parent
commit
2bb8c439cf
No known key found for this signature in database GPG Key ID: A646B9CB645ECEA4
  1. 14
      framework/src/Volo.Abp.MudBlazorUI/AbpMudCrudPageBase.cs
  2. 2
      framework/src/Volo.Abp.MudBlazorUI/Components/AbpMudExtensibleDataGrid.razor.cs
  3. 2
      framework/src/Volo.Abp.MudBlazorUI/Components/MudEntityAction.razor.cs
  4. 2
      framework/src/Volo.Abp.MudBlazorUI/Components/ObjectExtending/MudLookupExtensionProperty.razor.cs

14
framework/src/Volo.Abp.MudBlazorUI/AbpMudCrudPageBase.cs

@ -375,7 +375,7 @@ public abstract class AbpMudCrudPageBase<
if (_createDialog != null)
{
await _createDialog.ShowAsync();
await InvokeAsync(() => _createDialog.ShowAsync());
}
}
catch (Exception ex)
@ -384,13 +384,14 @@ public abstract class AbpMudCrudPageBase<
}
}
protected virtual async Task CloseCreateDialogAsync()
protected virtual Task CloseCreateDialogAsync()
{
NewEntity = new TCreateViewModel();
if (_createDialog != null)
{
await _createDialog.CloseAsync();
return InvokeAsync(() => _createDialog.CloseAsync());
}
return Task.CompletedTask;
}
protected virtual async Task OpenEditDialogAsync(TListViewModel entity)
@ -406,7 +407,7 @@ public abstract class AbpMudCrudPageBase<
if (_editDialog != null)
{
await _editDialog.ShowAsync();
await InvokeAsync(() => _editDialog.ShowAsync());
}
}
catch (Exception ex)
@ -440,12 +441,13 @@ public abstract class AbpMudCrudPageBase<
return ObjectMapper.Map<TUpdateViewModel, TUpdateInput>(updateViewModel);
}
protected virtual async Task CloseEditDialogAsync()
protected virtual Task CloseEditDialogAsync()
{
if (_editDialog != null)
{
await _editDialog.CloseAsync();
return InvokeAsync(() => _editDialog.CloseAsync());
}
return Task.CompletedTask;
}
protected virtual async Task CreateEntityAsync()

2
framework/src/Volo.Abp.MudBlazorUI/Components/AbpMudExtensibleDataGrid.razor.cs

@ -61,7 +61,7 @@ public partial class AbpMudExtensibleDataGrid<TItem> : ComponentBase
{
if (_dataGrid != null && ServerData != null)
{
await _dataGrid.ReloadServerData();
await InvokeAsync(() => _dataGrid.ReloadServerData());
}
}

2
framework/src/Volo.Abp.MudBlazorUI/Components/MudEntityAction.razor.cs

@ -69,7 +69,7 @@ public partial class MudEntityAction<TItem> : ComponentBase
{
if (await UiMessageService.Confirm(ConfirmationMessage()))
{
await InvokeAsync(async () => await Clicked.InvokeAsync());
await InvokeAsync(Clicked.InvokeAsync);
}
}
else

2
framework/src/Volo.Abp.MudBlazorUI/Components/ObjectExtending/MudLookupExtensionProperty.razor.cs

@ -58,7 +58,7 @@ public partial class MudLookupExtensionProperty<TEntity, TResourceType>
if (firstRender)
{
LookupItems = await GetLookupItemsAsync(string.Empty);
StateHasChanged();
await InvokeAsync(StateHasChanged);
}
}

Loading…
Cancel
Save