diff --git a/src/app/accessible-table/accessible-table.component.html b/src/app/accessible-table/accessible-table.component.html index 148e6d4c..41d19dce 100644 --- a/src/app/accessible-table/accessible-table.component.html +++ b/src/app/accessible-table/accessible-table.component.html @@ -1,4 +1,4 @@ - + { this.renderedRangeChange.emit(range) }); - setTimeout(() => { - this.updateFirstRowHeight(); - }, 1000) + setTimeout(() => { + this.updateFirstRowHeight() + }, 1000) + + this.resizeObserver = new ResizeObserver((entries) => { + this.maxBufferPx = window.innerHeight + this.updateFirstRowHeight() + }); + + this.resizeObserver.observe(this.elementRef.nativeElement.parentElement.querySelector('table')); } ngOnDestroy(): void { - this.renderedRangeSub?.unsubscribe(); + this.renderedRangeSub.unsubscribe(); + this.resizeObserver.disconnect(); } ngOnChanges(changes: SimpleChanges): void { - this.updateFirstRowHeight() - if (changes.scrollToIndex && this.items.length > this.scrollToIndex) { this.doScrollToIndex(this.scrollToIndex) } @@ -99,11 +107,13 @@ export class AccessibleTableComponent implements OnDestroy, AfterViewInit, OnCha } private updateFirstRowHeight(): void { - this.firstRowHeight = this + const elem = this .elementRef .nativeElement .parentElement ?.querySelector('tbody') + + this.firstRowHeight = elem ?.offsetHeight || this.firstRowHeight; }