From 3724a6c0b69131a75a4d7937058acf2138964a2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adina=20=C8=9Aeudan?= Date: Mon, 23 Sep 2024 22:23:02 +0300 Subject: [PATCH] Ignored keys for form changed in dialogs --- src/lib/dialog/iqser-dialog-component.directive.ts | 4 +++- src/lib/utils/functions.ts | 6 +++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/lib/dialog/iqser-dialog-component.directive.ts b/src/lib/dialog/iqser-dialog-component.directive.ts index 069f7cc..b4ac0d7 100644 --- a/src/lib/dialog/iqser-dialog-component.directive.ts +++ b/src/lib/dialog/iqser-dialog-component.directive.ts @@ -22,6 +22,8 @@ export abstract class IqserDialogComponent(MAT_DIALOG_DATA); readonly dialog = inject(MatDialog); readonly form?: FormGroup; + readonly ignoredKeys: string[] = []; + initialFormValue: Record = {}; constructor(private readonly _editMode = false) { @@ -37,7 +39,7 @@ export abstract class IqserDialogComponent, PrimaryKey exte return (_index: number, item: T): Id => item.id; } -export function hasFormChanged(form: UntypedFormGroup, initialFormValue: Record): boolean { +export function hasFormChanged(form: UntypedFormGroup, initialFormValue: Record, ignoredKeys: string[] = []): boolean { if (!form || !initialFormValue) { return false; } for (const key of Object.keys(form.getRawValue())) { + if (ignoredKeys.includes(key)) { + continue; + } + const initialValue = initialFormValue[key]; const updatedValue = form.get(key)?.value;