From 2caa0be97798f386ddb67662ef99667f5b53d5b0 Mon Sep 17 00:00:00 2001 From: VDyulgerov Date: Thu, 10 Mar 2022 08:45:06 +0200 Subject: [PATCH 1/3] fix(grid): add addtional check for cellID --- projects/igniteui-angular/src/lib/grids/cell.component.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/projects/igniteui-angular/src/lib/grids/cell.component.ts b/projects/igniteui-angular/src/lib/grids/cell.component.ts index d8bf5eaf979..e3226ee34ee 100644 --- a/projects/igniteui-angular/src/lib/grids/cell.component.ts +++ b/projects/igniteui-angular/src/lib/grids/cell.component.ts @@ -970,7 +970,11 @@ export class IgxGridCellComponent implements OnInit, OnChanges, OnDestroy { if (this.editable && editMode && !this.intRow.deleted) { if (editableCell) { - editableArgs = this.grid.crudService.updateCell(false, event); + if (this.grid.rowEditable && editableCell?.id !== this.cellID && this.row) { + this.grid.crudService.endEdit(true, event); + } else { + editableArgs = this.grid.crudService.updateCell(false, event); + } /* This check is related with the following issue #6517: * when edit cell that belongs to a column which is sorted and press tab, From fffbbb2a378467dd16cb69a60b2b7cb5bc9157e4 Mon Sep 17 00:00:00 2001 From: VDyulgerov Date: Fri, 11 Mar 2022 11:26:32 +0200 Subject: [PATCH 2/3] fix(grid): prevent cell edit exit double emit --- projects/igniteui-angular/src/lib/grids/cell.component.ts | 6 +----- .../igniteui-angular/src/lib/grids/common/crud.service.ts | 2 +- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/projects/igniteui-angular/src/lib/grids/cell.component.ts b/projects/igniteui-angular/src/lib/grids/cell.component.ts index e3226ee34ee..d8bf5eaf979 100644 --- a/projects/igniteui-angular/src/lib/grids/cell.component.ts +++ b/projects/igniteui-angular/src/lib/grids/cell.component.ts @@ -970,11 +970,7 @@ export class IgxGridCellComponent implements OnInit, OnChanges, OnDestroy { if (this.editable && editMode && !this.intRow.deleted) { if (editableCell) { - if (this.grid.rowEditable && editableCell?.id !== this.cellID && this.row) { - this.grid.crudService.endEdit(true, event); - } else { - editableArgs = this.grid.crudService.updateCell(false, event); - } + editableArgs = this.grid.crudService.updateCell(false, event); /* This check is related with the following issue #6517: * when edit cell that belongs to a column which is sorted and press tab, diff --git a/projects/igniteui-angular/src/lib/grids/common/crud.service.ts b/projects/igniteui-angular/src/lib/grids/common/crud.service.ts index ac80274e5ce..b8cd456c645 100644 --- a/projects/igniteui-angular/src/lib/grids/common/crud.service.ts +++ b/projects/igniteui-angular/src/lib/grids/common/crud.service.ts @@ -533,7 +533,7 @@ export class IgxGridCRUDService extends IgxRowAddCrudState { this.createCell(cell); if (this.rowEditing) { - if (this.row && !this.sameRow(this.cell?.id?.rowID)) { + if (this.row && !this.sameRow(cell?.cellID?.rowID)) { this.rowEditingBlocked = this.endEdit(true, event); if (this.rowEditingBlocked) { return true; From 3b5761ef010172f7be095c2c97eaf0c24c93f49f Mon Sep 17 00:00:00 2001 From: VDyulgerov Date: Mon, 14 Mar 2022 14:06:02 +0200 Subject: [PATCH 3/3] fix(grid): prevent cell edit exit double emit --- .../igniteui-angular/src/lib/grids/common/crud.service.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/projects/igniteui-angular/src/lib/grids/common/crud.service.ts b/projects/igniteui-angular/src/lib/grids/common/crud.service.ts index b8cd456c645..d2da019b8e1 100644 --- a/projects/igniteui-angular/src/lib/grids/common/crud.service.ts +++ b/projects/igniteui-angular/src/lib/grids/common/crud.service.ts @@ -530,8 +530,6 @@ export class IgxGridCRUDService extends IgxRowAddCrudState { this.grid.tbody.nativeElement.focus(); } } else { - - this.createCell(cell); if (this.rowEditing) { if (this.row && !this.sameRow(cell?.cellID?.rowID)) { this.rowEditingBlocked = this.endEdit(true, event); @@ -539,11 +537,10 @@ export class IgxGridCRUDService extends IgxRowAddCrudState { return true; } - // If enters here, @endEdit clears the new reference of the cell edit. - this.createCell(cell); this.rowEditingBlocked = false; this.endRowEdit(); } + this.createCell(cell); const canceled = this.beginRowEdit(event); if (!canceled) { @@ -551,6 +548,7 @@ export class IgxGridCRUDService extends IgxRowAddCrudState { } } else { + this.createCell(cell); this.beginCellEdit(event); } }