Skip to content

Commit fe85387

Browse files
authored
Merge pull request #7176 from IgniteUI/mkirova/fix-rowPin-persistance
fix(igxGrid): Ensure previous row pin state is cleared before applyin…
2 parents 013aa82 + 6475e3f commit fe85387

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

projects/igniteui-angular/src/lib/grids/state.directive.spec.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -414,6 +414,15 @@ describe('IgxGridState - input properties #grid', () => {
414414
expect(grid.pinnedRows[1].rowID).toBe(3);
415415
gridState = state.getState(true, 'rowPinning');
416416
expect(gridState).toBe(rowPinState);
417+
418+
grid.getRowByIndex(3).pin();
419+
420+
state.setState(rowPinStateObject);
421+
fix.detectChanges();
422+
423+
expect(grid.pinnedRows.length).toBe(2);
424+
expect(grid.pinnedRows[0].rowID).toBe(1);
425+
expect(grid.pinnedRows[1].rowID).toBe(3);
417426
});
418427

419428
it('setState should correctly restore grid cell selection state from string', () => {

projects/igniteui-angular/src/lib/grids/state.directive.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -478,6 +478,8 @@ export class IgxGridStateDirective {
478478
}
479479

480480
private restoreRowPinning(state: any[]) {
481+
// clear current state.
482+
this.grid.pinnedRows.forEach(row => row.unpin());
481483
state.forEach(rowID => this.grid.pinRow(rowID));
482484
}
483485

0 commit comments

Comments
 (0)