Skip to content

Commit 85aa2b3

Browse files
authored
fix(grid): rem throtttime lead of event (#13684)
1 parent 3055cd8 commit 85aa2b3

File tree

9 files changed

+17
-27
lines changed

9 files changed

+17
-27
lines changed

projects/igniteui-angular/src/lib/directives/for-of/for_of.directive.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -293,7 +293,7 @@ describe('IgxForOf directive -', () => {
293293
{ 1: '10', height: '150px' }
294294
];
295295
fix.detectChanges();
296-
await wait();
296+
await wait(50);
297297
let chunkSize = (virtualContainer as any)._calcMaxChunkSize();
298298
expect(chunkSize).toEqual(9);
299299

projects/igniteui-angular/src/lib/directives/for-of/for_of.directive.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -439,7 +439,7 @@ export class IgxForOfDirective<T, U extends T[] = T[]> implements OnInit, OnChan
439439
const destructor = takeUntil<any>(this.destroy$);
440440
this.contentResizeNotify.pipe(
441441
filter(() => this.igxForContainerSize && this.igxForOf && this.igxForOf.length > 0),
442-
throttleTime(40, undefined, { leading: true, trailing: true }),
442+
throttleTime(40, undefined, { leading: false, trailing: true }),
443443
destructor
444444
).subscribe(() => this._zone.runTask(() => this.updateSizes()));
445445
}

projects/igniteui-angular/src/lib/grids/grid-base.directive.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3508,7 +3508,7 @@ export abstract class IgxGridBaseDirective extends DisplayDensityBase implements
35083508

35093509
this.resizeNotify.pipe(
35103510
filter(() => !this._init),
3511-
throttleTime(0, animationFrameScheduler, { leading: true, trailing: true }),
3511+
throttleTime(40, animationFrameScheduler, { leading: false, trailing: true }),
35123512
destructor
35133513
)
35143514
.subscribe(() => {

projects/igniteui-angular/src/lib/grids/hierarchical-grid/hierarchical-grid.navigation.spec.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import { GridFunctions } from '../../test-utils/grid-functions.spec';
1212
import { IgxGridCellComponent } from '../cell.component';
1313
import { IGridCellEventArgs, IgxColumnComponent } from '../public_api';
1414

15-
const DEBOUNCE_TIME = 30;
15+
const DEBOUNCE_TIME = 50;
1616
const GRID_CONTENT_CLASS = '.igx-grid__tbody-content';
1717
const GRID_FOOTER_CLASS = '.igx-grid__tfoot';
1818

@@ -117,9 +117,11 @@ describe('IgxHierarchicalGrid Navigation', () => {
117117
});
118118

119119
it('should allow navigating up in child grid when child grid selected cell moves outside the parent view port.', async () => {
120-
hierarchicalGrid.verticalScrollContainer.scrollTo(2);
120+
await wait(DEBOUNCE_TIME);
121121
fixture.detectChanges();
122+
hierarchicalGrid.verticalScrollContainer.scrollTo(2);
122123
await wait(DEBOUNCE_TIME);
124+
fixture.detectChanges();
123125

124126
const childGrid = hierarchicalGrid.gridAPI.getChildGrids(false)[0];
125127
const childCell = childGrid.dataRowList.toArray()[4].cells.first;
@@ -366,6 +368,8 @@ describe('IgxHierarchicalGrid Navigation', () => {
366368
});
367369

368370
it('if next child cell is not in view should scroll parent so that it is in view.', async () => {
371+
await wait(DEBOUNCE_TIME);
372+
fixture.detectChanges();
369373
hierarchicalGrid.verticalScrollContainer.scrollTo(4);
370374
fixture.detectChanges();
371375
await wait(DEBOUNCE_TIME);
@@ -651,6 +655,8 @@ describe('IgxHierarchicalGrid Navigation', () => {
651655
// complex tests
652656
it('in case prev cell is not in view port should scroll the closest scrollable parent so that cell comes in view.', async () => {
653657
// scroll parent so that child top is not in view
658+
await wait(DEBOUNCE_TIME);
659+
fixture.detectChanges();
654660
hierarchicalGrid.verticalScrollContainer.addScrollTop(300);
655661
fixture.detectChanges();
656662
await wait(DEBOUNCE_TIME);

projects/igniteui-angular/src/lib/grids/hierarchical-grid/hierarchical-grid.virtualization.spec.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { IgxRowIslandComponent } from './row-island.component';
77
import { wait, UIInteractions } from '../../test-utils/ui-interactions.spec';
88
import { By } from '@angular/platform-browser';
99
import { first, delay } from 'rxjs/operators';
10-
import { setupHierarchicalGridScrollDetection, resizeObserverIgnoreError, clearGridSubs } from '../../test-utils/helper-utils.spec';
10+
import { setupHierarchicalGridScrollDetection, clearGridSubs } from '../../test-utils/helper-utils.spec';
1111
import { FilteringExpressionsTree } from '../../data-operations/filtering-expressions-tree';
1212
import { FilteringLogic } from '../../data-operations/filtering-expression.interface';
1313
import { IgxStringFilteringOperand } from '../../data-operations/filtering-condition';
@@ -203,9 +203,8 @@ describe('IgxHierarchicalGrid Virtualization #hGrid', () => {
203203

204204
// Scroll to bottom
205205
hierarchicalGrid.verticalScrollContainer.getScroll().scrollTop = 5000;
206-
await wait();
206+
await wait(50);
207207
fixture.detectChanges();
208-
209208
// Expand two rows at the bottom
210209
(hierarchicalGrid.dataRowList.toArray()[6].nativeElement.children[0] as HTMLElement).click();
211210
await wait();
@@ -282,7 +281,6 @@ describe('IgxHierarchicalGrid Virtualization #hGrid', () => {
282281
});
283282

284283
it('should update scroll height after expanding/collapsing row in a nested child grid that has no height.', async () => {
285-
resizeObserverIgnoreError();
286284
fixture.componentInstance.data = [
287285
{ ID: 0, ChildLevels: 3, ProductName: 'Product: A0 ' },
288286
{ ID: 1, ChildLevels: 3, ProductName: 'Product: A0 ' },

projects/igniteui-angular/src/lib/list/list.component.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -689,8 +689,8 @@ describe('List', () => {
689689

690690
const items = fixture.debugElement.queryAll(By.css('igx-list-item'));
691691
const len = items.length;
692-
expect(items[0].nativeElement.textContent).toContain('2');
693-
expect(fixture.componentInstance.forOfList.items[0].index).toEqual(1);
692+
expect(items[0].nativeElement.textContent).toContain('4');
693+
expect(fixture.componentInstance.forOfList.items[0].index).toEqual(3);
694694
expect(items[len - 1].nativeElement.textContent).toContain('10');
695695
expect(fixture.componentInstance.forOfList.items[len - 1].index).toEqual(9);
696696
}));

projects/igniteui-angular/src/lib/test-utils/configure-suite.ts

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { TestBed, getTestBed, ComponentFixture, waitForAsync } from '@angular/core/testing';
2-
import { resizeObserverIgnoreError } from './helper-utils.spec';
32

43
/**
54
* Per https://github.com/angular/angular/issues/12409#issuecomment-391087831
@@ -20,12 +19,10 @@ export const configureTestSuite = (configureAction?: () => TestBed) => {
2019
document.querySelectorAll('svg').forEach(tag => tag.remove());
2120
};
2221

23-
let _resizerSub: jasmine.Spy<OnErrorEventHandlerNonNull>;
24-
2522
beforeAll(() => {
2623
testBed.resetTestingModule();
2724
testBed.resetTestingModule = () => testBed;
28-
_resizerSub = resizeObserverIgnoreError();
25+
jasmine.getEnv().allowRespy(true);
2926
});
3027

3128
if (configureAction) {
@@ -52,6 +49,5 @@ export const configureTestSuite = (configureAction?: () => TestBed) => {
5249
afterAll(() => {
5350
testBed.resetTestingModule = originReset;
5451
testBed.resetTestingModule();
55-
_resizerSub = null;
5652
});
5753
};

projects/igniteui-angular/src/lib/test-utils/helper-utils.spec.ts

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,6 @@ import { IgxHierarchicalGridComponent } from '../grids/hierarchical-grid/public_
44
import { GridType } from '../grids/common/grid.interface';
55
import { Subscription } from 'rxjs';
66

7-
export const resizeObserverIgnoreError = () => {
8-
jasmine.getEnv().allowRespy(true);
9-
const spy = spyOn(window, 'onerror').and.callFake((...args) => {
10-
if (args[0].toString().match('ResizeObserver loop limit exceeded')) {
11-
return;
12-
}
13-
spy.and.callThrough().withArgs(...args);
14-
});
15-
return spy;
16-
};
17-
187
export let gridsubscriptions: Subscription [] = [];
198

209
export const setupGridScrollDetection = (fixture: ComponentFixture<any>, grid: GridType) => {

projects/igniteui-angular/src/lib/test-utils/list-components.spec.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,7 @@ export class ListWithPanningTemplatesComponent extends ListWithPanningComponent
203203
<div [style.height]="'240px'" [style.overflow]="'hidden'" [style.position]="'relative'">
204204
<igx-list-item
205205
[index]="i"
206+
[style.height]="'40px'"
206207
*igxFor="let item of data; index as i; scrollOrientation : 'vertical'; containerSize: '240px'; itemSize: '40px'">
207208
<div class="item-container">
208209
<span>{{ item.key }}</span>&nbsp;

0 commit comments

Comments
 (0)