Skip to content

Commit bc99b42

Browse files
danielolaru91mmalerba
authored andcommittedApr 2, 2025·
perf(cdk-experimental/column-resize): improve hover responsiveness of… (#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 <mmalerba@google.com> (cherry picked from commit dd69023)
1 parent bdbf32a commit bc99b42

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed
 

‎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)
Please sign in to comment.