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
@@ -11,6 +11,7 @@
BackButtonUrl="/students" />
<EditForm id="create-student-form" Model="Student" OnValidSubmit="OnValidSubmit" Enhance>
<FormChangeTracker @ref="_formChangeTracker" />
<AntiforgeryToken />
<DataAnnotationsValidator />
<MudGrid>
@@ -29,18 +30,27 @@
<FormActions>
<MudButton ButtonType="ButtonType.Submit" Variant="Variant.Filled" Color="Color.Primary" Form="create-student-form">Create</MudButton>
<MudButton Href="/students" Variant="Variant.Text">Cancel</MudButton>
<MudButton OnClick="HandleCancel" Variant="Variant.Text">Cancel</MudButton>
</FormActions>
@code {
[SupplyParameterFromForm]
private Student Student { get; set; } = new() { TsaYear = 1 };
private FormChangeTracker? _formChangeTracker;
private void OnValidSubmit(EditContext context)
{
_formChangeTracker?.AllowNavigation();
Context.Students.Add(Student);
Context.SaveChanges();
NavigationManager.NavigateTo("/students");
}
private void HandleCancel()
{
_formChangeTracker?.AllowNavigation();
NavigationManager.NavigateTo("/students");
}
}