Skip to content

Commit 25de9e9

Browse files
authored
Merge branch '8.1.x' into tzhelev/fix-5238-8.1.x
2 parents 1a90ff5 + d8bc0e2 commit 25de9e9

File tree

2 files changed

+34
-0
lines changed

2 files changed

+34
-0
lines changed

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

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -372,6 +372,11 @@ export class IgxHierarchicalGridComponent extends IgxHierarchicalGridBaseCompone
372372
}
373373
});
374374
});
375+
this.parent.verticalScrollContainer.onDataChanged.pipe(takeUntil(this.destroy$)).subscribe(() => {
376+
requestAnimationFrame(() => {
377+
this.updateSizes();
378+
});
379+
});
375380
this.childLayoutKeys = this.parentIsland.children.map((item) => item.key);
376381
}
377382

@@ -380,6 +385,16 @@ export class IgxHierarchicalGridComponent extends IgxHierarchicalGridBaseCompone
380385
this.toolbarCustomContentTemplates;
381386
}
382387

388+
private updateSizes() {
389+
if (!this._destroyed && document.body.contains(this.nativeElement) && this.isPercentWidth) {
390+
this.reflow();
391+
392+
this.hgridAPI.getChildGrids(false).forEach((grid) => {
393+
grid.updateSizes();
394+
});
395+
}
396+
}
397+
383398
public get outletDirective() {
384399
return this.rootGrid._outletDirective;
385400
}

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

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import { IgxHierarchicalRowComponent } from './hierarchical-row.component';
1010
import { By } from '@angular/platform-browser';
1111
import { IgxChildGridRowComponent } from './child-grid-row.component';
1212
import { DisplayDensity } from '../../core/displayDensity';
13+
import { IgxStringFilteringOperand } from '../../data-operations/filtering-condition';
1314

1415
describe('Basic IgxHierarchicalGrid', () => {
1516
configureTestSuite();
@@ -333,6 +334,24 @@ describe('Basic IgxHierarchicalGrid', () => {
333334
fixture.detectChanges();
334335
expect(childGrid.calcWidth - 170).toBeLessThan(3);
335336
});
337+
338+
it('child grid width should be recalculated if parent no longer shows scrollbar.', async () => {
339+
hierarchicalGrid.height = '1000px';
340+
fixture.detectChanges();
341+
hierarchicalGrid.filter('ProductName', 'A0', IgxStringFilteringOperand.instance().condition('contains'), true);
342+
fixture.detectChanges();
343+
const row = hierarchicalGrid.getRowByIndex(0) as IgxHierarchicalRowComponent;
344+
UIInteractions.clickElement(row.expander);
345+
const childGrids = fixture.debugElement.queryAll(By.css('igx-child-grid-row'));
346+
const childGrid = childGrids[0].query(By.css('igx-hierarchical-grid')).componentInstance;
347+
expect(childGrid.calcWidth - 370 - childGrid.scrollWidth).toBeLessThanOrEqual(5);
348+
349+
hierarchicalGrid.clearFilter();
350+
fixture.detectChanges();
351+
await wait(30);
352+
353+
expect(childGrid.calcWidth - 370 ).toBeLessThan(3);
354+
});
336355
});
337356

338357
describe('IgxHierarchicalGrid Row Islands', () => {

0 commit comments

Comments
 (0)