Skip to content
This repository was archived by the owner on May 1, 2024. It is now read-only.

Commit 851b783

Browse files
authored
Invoke base lifecycle methods in component (#84)
1 parent 69050e0 commit 851b783

File tree

2 files changed

+25
-23
lines changed

2 files changed

+25
-23
lines changed

src/MvvmBlazor.CodeGenerators/Components/MvvmComponentGenerator.cs

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -312,56 +312,61 @@ protected internal TValue Bind<TValue>(Expression<Func<T, TValue>> property)
312312
/// <inheritdoc />
313313
protected override void OnInitialized()
314314
{{
315-
base.OnInitialized();
316315
SetBindingContext();
316+
base.OnInitialized();
317317
BindingContext?.OnInitialized();
318318
}}
319319
320320
/// <inheritdoc />
321-
protected override Task OnInitializedAsync()
321+
protected override async Task OnInitializedAsync()
322322
{{
323-
return BindingContext?.OnInitializedAsync() ?? Task.CompletedTask;
323+
await base.OnInitializedAsync();
324+
await BindingContext!.OnInitializedAsync();
324325
}}
325326
326327
/// <inheritdoc />
327328
protected override void OnParametersSet()
328329
{{
329330
SetParameters();
331+
base.OnParametersSet();
330332
BindingContext?.OnParametersSet();
331333
}}
332334
333335
/// <inheritdoc />
334-
protected override Task OnParametersSetAsync()
336+
protected override async Task OnParametersSetAsync()
335337
{{
336-
return BindingContext?.OnParametersSetAsync() ?? Task.CompletedTask;
338+
await base.OnParametersSetAsync();
339+
await BindingContext.OnParametersSetAsync();
337340
}}
338341
339342
/// <inheritdoc />
340343
protected override bool ShouldRender()
341344
{{
342-
return BindingContext?.ShouldRender() ?? true;
345+
return BindingContext!.ShouldRender();
343346
}}
344347
345348
/// <inheritdoc />
346349
protected override void OnAfterRender(bool firstRender)
347350
{{
348-
BindingContext?.OnAfterRender(firstRender);
351+
base.OnAfterRender(firstRender);
352+
BindingContext!.OnAfterRender(firstRender);
349353
}}
350354
351355
/// <inheritdoc />
352-
protected override Task OnAfterRenderAsync(bool firstRender)
356+
protected override async Task OnAfterRenderAsync(bool firstRender)
353357
{{
354-
return BindingContext?.OnAfterRenderAsync(firstRender) ?? Task.CompletedTask;
358+
await base.OnAfterRenderAsync(firstRender);
359+
await BindingContext!.OnAfterRenderAsync(firstRender);
355360
}}
356361
357362
/// <inheritdoc />
358363
public override async Task SetParametersAsync(ParameterView parameters)
359364
{{
360-
await base.SetParametersAsync(parameters).ConfigureAwait(false);
365+
await base.SetParametersAsync(parameters);
361366
362367
if (BindingContext != null)
363368
{{
364-
await BindingContext.SetParametersAsync(parameters).ConfigureAwait(false);
369+
await BindingContext.SetParametersAsync(parameters);
365370
}}
366371
}}
367372
}}

src/MvvmBlazor.Tests/Components/MvvmComponentBaseTTests.cs

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -28,16 +28,15 @@ public void AfterRender_called_On_binding_context()
2828
}
2929

3030
[Fact]
31-
public void AfterRenderAsync_called_on_binding_context()
31+
public async Task AfterRenderAsync_called_on_binding_context()
3232
{
33-
var task = new Task(() => { });
33+
var task = Task.CompletedTask;
3434
var viewModel = Services.GetMock<ViewModelBase>();
3535
var component = Services.GetRequiredService<MockMvvmComponentBase>();
3636

3737
viewModel.Setup(x => x.OnAfterRenderAsync(It.IsAny<bool>())).Returns(task).Verifiable();
3838

39-
var res = component.AfterRenderAsync(true);
40-
res.ShouldBe(task);
39+
await component.AfterRenderAsync(true);
4140

4241
viewModel.Verify();
4342
}
@@ -75,17 +74,16 @@ public void OnInitialized_called_on_binding_context()
7574
}
7675

7776
[Fact]
78-
public void OnInitializedAsync_called_on_binding_context()
77+
public async Task OnInitializedAsync_called_on_binding_context()
7978
{
80-
var task = new Task(() => { });
79+
var task = Task.CompletedTask;
8180

8281
var viewModel = Services.GetMock<ViewModelBase>();
8382
var component = Services.GetRequiredService<MockMvvmComponentBase>();
8483

8584
viewModel.Setup(x => x.OnInitializedAsync()).Returns(task).Verifiable();
8685

87-
var res = component.InitializedAsync();
88-
res.ShouldBe(task);
86+
await component.InitializedAsync();
8987

9088
viewModel.Verify();
9189
}
@@ -106,17 +104,16 @@ public void OnParametersSet_sets_viewmodel_parameters()
106104
}
107105

108106
[Fact]
109-
public void OnParametersSetAsync_called_on_binding_context()
107+
public async Task OnParametersSetAsync_called_on_binding_context()
110108
{
111-
var task = new Task(() => { });
109+
var task = Task.CompletedTask;
112110

113111
var viewModel = Services.GetMock<ViewModelBase>();
114112
var component = Services.GetRequiredService<MockMvvmComponentBase>();
115113

116114
viewModel.Setup(x => x.OnParametersSetAsync()).Returns(task).Verifiable();
117115

118-
var res = component.ParametersSetAsync();
119-
res.ShouldBe(task);
116+
await component.ParametersSetAsync();
120117

121118
viewModel.Verify();
122119
}

0 commit comments

Comments
 (0)