fix(datetime): disable intersection observer during month update (#24713)

Resolves #24712
This commit is contained in:
Sean Perkins
2022-02-04 11:39:21 -05:00
committed by GitHub
parent df84d155ea
commit aab4d306f8

View File

@ -771,6 +771,13 @@ export class Datetime implements ComponentInterface {
*/
writeTask(() => {
// Disconnect all active intersection observers
// to avoid a re-render causing a duplicate event.
if (this.destroyCalendarIO) {
this.destroyCalendarIO();
}
raf(() => {
this.setWorkingParts({
...this.workingParts,
month,
@ -778,10 +785,12 @@ export class Datetime implements ComponentInterface {
year
});
raf(() => {
calendarBodyRef.scrollLeft = workingMonth.clientWidth * (isRTL(this.el) ? -1 : 1);
calendarBodyRef.style.removeProperty('overflow');
calendarBodyRef.style.removeProperty('pointer-events');
endIO?.observe(endMonth);
startIO?.observe(startMonth);
});
/**