-
Notifications
You must be signed in to change notification settings - Fork 12
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(react): useScrollLock 신규 컴포넌트 추가 #212
Conversation
🦋 Changeset detectedLatest commit: 4285650 The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #212 +/- ##
==========================================
+ Coverage 95.58% 95.75% +0.17%
==========================================
Files 85 88 +3
Lines 860 896 +36
Branches 201 209 +8
==========================================
+ Hits 822 858 +36
Misses 32 32
Partials 6 6
|
if (!ref.current) { | ||
ref.current = document.body as T; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ref.current가 없다면 document.body를 초기 요소로 셋팅
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
직접적으로 lock을 on/off 할 수 있는 인터페이스를 제공하는 것과 필요하지 않은 사용자에게는 autoLock을 통해 별도 인터페이스를 사용하지 않도록 하는 부분 완전 좋아보입니다! 👍
인자로 받아오는 함수가 없기때문에 preservedCallback 대신 useCallback을 사용한 디테일도 너무 좋네요! 너무 고생 많으셨습니다 ! 👍x10
@Sangminnn 리뷰 감사합니다! 문서를 추가 후에 반영하도록 하겠습니다! |
Overview
Issue: #211
특정 요소의 스크롤을
lock
,unlock
할 수 있는 커스텀 훅입니다.모달과 같은 컴포넌트가 렌더링 됐을 때,
배경 요소(document.body)
의 스크롤을 잠글 때 활용될 수 있습니다.기본적으로
document.body
을 대상으로mount
시에 자동으로 스크롤을 잠급니다.unmount
시에는 타겟 요소의 원래 overflow style로 다시 돌려놓습니다.autoLock
옵션을false
로 설정하면mount
시에 자동으로 스크롤을 잠그지 않습니다.해당 훅이 반환하는
lock
,unlock
함수를 활용하여 직접 스크롤을 잠그거나, 잠금된 스크롤을 해제할 수 있습니다.document.body
가 아닌 특정 요소의 스크롤을 막으려면 해당 훅이 반환하는ref
를 원하는 요소에게 넘겨주면 됩니다.PR Checklist
Contributing Guide