StackedRouter: increase swipe to back area
All checks were successful
/ depoly (push) Successful in 1m22s
All checks were successful
/ depoly (push) Successful in 1m22s
This commit is contained in:
parent
df5a976ec3
commit
8e8554331b
1 changed files with 35 additions and 20 deletions
|
@ -294,8 +294,9 @@ const StackedRouter: Component<StackedRouterProps> = (oprops) => {
|
|||
};
|
||||
|
||||
let reenterableAnimation: Animation | undefined;
|
||||
let origX = 0,
|
||||
origWidth = 0;
|
||||
let origWidth = 0,
|
||||
origFigX = 0,
|
||||
origFigY = 0;
|
||||
|
||||
const resetAnimation = () => {
|
||||
reenterableAnimation = undefined;
|
||||
|
@ -307,23 +308,25 @@ const StackedRouter: Component<StackedRouterProps> = (oprops) => {
|
|||
if (event.touches.length !== 1) {
|
||||
return;
|
||||
}
|
||||
const [fig0] = event.touches;
|
||||
const { x, width } = event.currentTarget.getBoundingClientRect();
|
||||
if (fig0.clientX < x - 22 || fig0.clientX > x + 22) {
|
||||
return;
|
||||
}
|
||||
origX = x;
|
||||
origWidth = width;
|
||||
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
|
||||
const lastFr = stack[stack.length - 1];
|
||||
const createAnimation = lastFr.animateClose ?? animateClose;
|
||||
reenterableAnimation = createAnimation(event.currentTarget);
|
||||
reenterableAnimation.pause();
|
||||
reenterableAnimation.addEventListener("finish", resetAnimation);
|
||||
reenterableAnimation.addEventListener("cancel", resetAnimation);
|
||||
const [fig0] = event.touches;
|
||||
const { width } = event.currentTarget.getBoundingClientRect();
|
||||
origWidth = width;
|
||||
origFigX = fig0.clientX;
|
||||
origFigY = fig0.clientY;
|
||||
|
||||
if (
|
||||
fig0.clientX < -22 ||
|
||||
fig0.clientX > 22 ||
|
||||
fig0.clientX < window.innerWidth - 22 ||
|
||||
fig0.clientX > window.innerWidth + 22
|
||||
) {
|
||||
return;
|
||||
}
|
||||
// Prevent the default swipe to back/forward on iOS
|
||||
|
||||
event.preventDefault();
|
||||
};
|
||||
|
||||
const onDialogTouchMove = (
|
||||
|
@ -336,13 +339,25 @@ const StackedRouter: Component<StackedRouterProps> = (oprops) => {
|
|||
}
|
||||
}
|
||||
|
||||
if (!reenterableAnimation) return;
|
||||
const [fig0] = event.touches;
|
||||
|
||||
const ofsX = fig0.clientX - origFigX;
|
||||
|
||||
if (!reenterableAnimation) {
|
||||
if (!(ofsX > 22) || !(Math.abs(fig0.clientY - origFigY) < 44)) {
|
||||
return;
|
||||
}
|
||||
const lastFr = stack[stack.length - 1];
|
||||
const createAnimation = lastFr.animateClose ?? animateClose;
|
||||
reenterableAnimation = createAnimation(event.currentTarget);
|
||||
reenterableAnimation.pause();
|
||||
reenterableAnimation.addEventListener("finish", resetAnimation);
|
||||
reenterableAnimation.addEventListener("cancel", resetAnimation);
|
||||
}
|
||||
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
|
||||
const [fig0] = event.touches;
|
||||
const ofsX = fig0.clientX - origX;
|
||||
const pc = ofsX / origWidth / window.devicePixelRatio;
|
||||
|
||||
const { activeDuration, delay } =
|
||||
|
|
Loading…
Reference in a new issue