Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pull to refresh isn't disable on iOS #1

Open
shivamsupr opened this issue Aug 5, 2018 · 7 comments
Open

Pull to refresh isn't disable on iOS #1

shivamsupr opened this issue Aug 5, 2018 · 7 comments

Comments

@shivamsupr
Copy link

Check the codesandbox.
https://codesandbox.io/s/jp8nvvzqoy

@shivamsupr shivamsupr changed the title Pull to refresh isn't disable in iOS Pull to refresh isn't disable on iOS Aug 5, 2018
@nghiepdev
Copy link
Owner

Maybe the issue on the chrome recent versions.

@Jonathan002
Copy link

This doesn't seem to work with Chrome 69.0.3497.105 on iOS 11.3. I've also tried multiple other solutions and that had seemed to work before from the reactions of others but they do not work for me for this version.

Other solutions I've tried:

@apptaro
Copy link

apptaro commented Nov 5, 2018

we need to add { passive: false } for touch move like:

document.addEventListener('touchmove', touchmoveHandler, { passive: false });

because from some version of Chrome, event listeners are default passive true.

@nghiepdev
Copy link
Owner

@apptaro Thank for your support.
It works!
I just published the new patch version for the issue.

@shivamsupr
Copy link
Author

@nghiepit It's still happening just for the initial load it doesn't happen. check this https://o1l55wryq.codesandbox.io.

To replicate:
Scroll up once and then scroll down. You'll see pull-to-refresh.

@apptaro
Copy link

apptaro commented Nov 5, 2018

I know what's wrong. When a page is short, scrollling down (panning up) doesn't actually scroll the page, so scrolling up (panning down) will activate pull-to-refresh.

https://github.com/nghiepit/prevent-pull-refresh/blob/master/index.js#L78
here, "maybePrevent" shouldn't be set to false unless window.pageYOffset !== 0.

@nghiepdev
Copy link
Owner

@apptaro
Did you mean?

const touchmoveHandler = event => {
    if (maybePrevent) {
      if (window.pageYOffset !== 0) {
        maybePrevent = false;
      }
      if (isScrollingUp(event)) {
        return event.preventDefault();
      }
    }
  };

With me. It's still happening, same issue @shivamsupr .
Can you help me test and make a pull request?

Thank you in advance.

@nghiepdev nghiepdev reopened this Nov 6, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants