tracks form changes and warns users before navigation

This commit is contained in:
2025-12-25 23:55:04 -05:00
parent 059a16b958
commit 77b5683804
8 changed files with 156 additions and 8 deletions
+9 -1
View File
@@ -17,6 +17,7 @@
BackButtonUrl="/teams" />
<EditForm method="post" Model="Team" OnValidSubmit="UpdateTeam" FormName="edit" Enhance>
<FormChangeTracker @ref="_formChangeTracker" />
<AntiforgeryToken />
<DataAnnotationsValidator/>
<MudGrid>
@@ -38,7 +39,7 @@
<FormActions>
<MudButton OnClick="UpdateTeam" Variant="Variant.Filled" Color="Color.Primary">Save</MudButton>
<MudButton Href="/teams" Variant="Variant.Text">Cancel</MudButton>
<MudButton OnClick="HandleCancel" Variant="Variant.Text">Cancel</MudButton>
</FormActions>
@code {
@@ -48,6 +49,7 @@
[SupplyParameterFromForm]
private Team? Team { get; set; }
private FormChangeTracker? _formChangeTracker;
private IEnumerable<Student>? _selectedStudents = [];
private List<Student> _students = [];
@@ -100,6 +102,8 @@
try
{
await Context.SaveChangesAsync();
_formChangeTracker?.AllowNavigation();
NavigationManager.NavigateTo("/teams");
}
catch (DbUpdateConcurrencyException)
{
@@ -112,7 +116,11 @@
throw;
}
}
}
private void HandleCancel()
{
_formChangeTracker?.AllowNavigation();
NavigationManager.NavigateTo("/teams");
}