chore(): sync with main

This commit is contained in:
Liam DeBeasi
2023-06-20 10:05:00 -04:00
518 changed files with 1010 additions and 465 deletions

View File

@ -692,6 +692,16 @@ export class Refresher implements ComponentInterface {
// and close the refresher
// set that the refresh is actively cancelling
this.cancel();
} else if (this.state === RefresherState.Inactive) {
/**
* The pull to refresh gesture was aborted
* so we should immediately restore any overflow styles
* that have been modified. Do not call this.cancel
* because the styles will only be reset after a timeout.
* If the gesture is aborted then scrolling should be
* available right away.
*/
this.restoreOverflowStyle();
}
}
@ -716,7 +726,12 @@ export class Refresher implements ComponentInterface {
this.state = RefresherState.Inactive;
this.progress = 0;
this.didStart = false;
this.setCss(0, '0ms', false, '');
/**
* Reset any overflow styles so the
* user can scroll again.
*/
this.setCss(0, '0ms', false, '', true);
}, 600);
// reset the styles on the scroll element
@ -725,7 +740,13 @@ export class Refresher implements ComponentInterface {
this.setCss(0, this.closeDuration, true, delay);
}
private setCss(y: number, duration: string, overflowVisible: boolean, delay: string) {
private setCss(
y: number,
duration: string,
overflowVisible: boolean,
delay: string,
shouldRestoreOverflowStyle = false
) {
if (this.nativeRefresher) {
return;
}
@ -738,11 +759,18 @@ export class Refresher implements ComponentInterface {
scrollStyle.transform = backgroundStyle.transform = y > 0 ? `translateY(${y}px) translateZ(0px)` : '';
scrollStyle.transitionDuration = backgroundStyle.transitionDuration = duration;
scrollStyle.transitionDelay = backgroundStyle.transitionDelay = delay;
if (overflowVisible) {
scrollStyle.overflow = 'hidden';
} else {
this.restoreOverflowStyle();
}
scrollStyle.overflow = overflowVisible ? 'hidden' : '';
}
/**
* Reset the overflow styles only once
* the pull to refresh effect has been closed.
* This ensures that the gesture is done
* and the refresh operation has either
* been aborted or has completed.
*/
if (shouldRestoreOverflowStyle) {
this.restoreOverflowStyle();
}
});
}