diff --git a/apps/forms/48-avoid-losing-form-data/src/app/app.routes.ts b/apps/forms/48-avoid-losing-form-data/src/app/app.routes.ts
index 84be34b9a..e1022760c 100644
--- a/apps/forms/48-avoid-losing-form-data/src/app/app.routes.ts
+++ b/apps/forms/48-avoid-losing-form-data/src/app/app.routes.ts
@@ -11,6 +11,9 @@ export const appRoutes: Route[] = [
{
path: 'form',
loadComponent: () => JoinComponent,
+ canDeactivate: [
+ (component: JoinComponent) => component.hasUnsavedChanges(),
+ ],
},
{
path: 'page-1',
diff --git a/apps/forms/48-avoid-losing-form-data/src/app/pages/join.component.ts b/apps/forms/48-avoid-losing-form-data/src/app/pages/join.component.ts
index 51449a7fb..6e00f3d80 100644
--- a/apps/forms/48-avoid-losing-form-data/src/app/pages/join.component.ts
+++ b/apps/forms/48-avoid-losing-form-data/src/app/pages/join.component.ts
@@ -1,4 +1,7 @@
-import { ChangeDetectionStrategy, Component } from '@angular/core';
+import { Dialog } from '@angular/cdk/dialog';
+import { ChangeDetectionStrategy, Component, inject } from '@angular/core';
+import { map } from 'rxjs';
+import { AlertDialogComponent } from '../ui/dialog.component';
import { FormComponent } from '../ui/form.component';
@Component({
@@ -6,10 +9,26 @@ import { FormComponent } from '../ui/form.component';
template: `
Do you want to continue and lose them?
- ++ Do you want to continue and lose them? +