Skip to content

Commit bac9897

Browse files
danielolaru91mmalerba
authored andcommitted
perf(cdk-experimental/column-resize): improve hover responsiveness of… (angular#30708)
* perf(cdk-experimental/column-resize): improve hover responsiveness of column resize with requestAnimationFrame Improve column resize performance when calling the `_updateOverlayHandleHeight()` method in the `cdk-experimental` column resize feature. By wrapping the `updateSize` call inside a `requestAnimationFrame()`, the height update is deferred to the next repaint, improving responsiveness during hover interactions. * perf(cdk-experimental/column-resize): improve hover responsiveness of column resize with requestAnimationFrame use afterNextRender write phase instead * fixup! perf(cdk-experimental/column-resize): improve hover responsiveness of column resize with requestAnimationFrame --------- Co-authored-by: Miles Malerba <[email protected]>
1 parent 95dc24d commit bac9897

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

Diff for: src/cdk-experimental/column-resize/resizable.ts

+9-1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ import {
1818
Type,
1919
ViewContainerRef,
2020
ChangeDetectorRef,
21+
afterNextRender,
22+
runInInjectionContext,
2123
} from '@angular/core';
2224
import {Directionality} from '@angular/cdk/bidi';
2325
import {ComponentPortal} from '@angular/cdk/portal';
@@ -284,7 +286,13 @@ export abstract class Resizable<HandleComponent extends ResizeOverlayHandle>
284286
}
285287

286288
private _updateOverlayHandleHeight() {
287-
this.overlayRef!.updateSize({height: this.elementRef.nativeElement!.offsetHeight});
289+
runInInjectionContext(this.injector, () => {
290+
afterNextRender({
291+
write: () => {
292+
this.overlayRef!.updateSize({height: this.elementRef.nativeElement!.offsetHeight});
293+
},
294+
});
295+
});
288296
}
289297

290298
private _applySize(sizeInPixels: number, previousSize?: number): void {

0 commit comments

Comments
 (0)