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

feat: add new hook useFreezeScroll #2541

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

dev-aly3n
Copy link

@dev-aly3n dev-aly3n commented Feb 11, 2024

Description

React hook that freezes the scroll and removes the scrollbar from the browser window when it is active without any layout shift, for example, when a modal is opened.

It's very challenging to avoid layout shift when you remove the scrollbar from the window. Many UI libraries still face issues with this, experiencing layout shifts when they open a modal or freeze scroll in some way. After testing numerous approaches, my colleague @ArianHamdi and I found an approach that avoids layout shifts while removing the scrollbar and freezing the scroll.

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as before)

Checklist

  • Read the Contributing Guide
  • Perform a code self-review
  • Comment the code, particularly in hard-to-understand areas
  • Add documentation
  • Add hook's story at Storybook
  • Cover changes with tests
  • Ensure the test suite passes (yarn test)
  • Provide 100% tests coverage
  • Make sure code lints (yarn lint). Fix it with yarn lint:fix in case of failure.
  • Make sure types are fine (yarn lint:types).

@dev-aly3n dev-aly3n marked this pull request as ready for review February 11, 2024 14:24
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

Successfully merging this pull request may close these issues.

None yet

1 participant