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…
	
	Add table
		Add a link
		
	
		Reference in a new issue