-
Notifications
You must be signed in to change notification settings - Fork 1
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
[S1] 공통 BottomSheet 적용 #617
Conversation
✅ Deploy Preview for tattour ready!
To edit notification comments on pull requests, go to your Netlify site configuration. |
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.
왕 야무진 공통 컴포!
저는 바텀시트를 구현하지 않아서 몰랐는데 항상 뜨던 그 워닝이 바텀시트 관련 워닝이였군용 !!
넘 수고 많으셨습니당 ~~
// const CustomSheet = styled(Sheet)` | ||
// height: 100%; | ||
// display: flex; | ||
// justify-content: center; |
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.
요기랑(1)
// .react-modal-sheet-backdrop { | ||
// background-color: rgba(0, 0, 0, 0.6) !important; | ||
// } | ||
// .react-modal-sheet-container { | ||
// padding: 2.5rem 0rem 7rem 0rem; | ||
// border-radius: 1rem !important; | ||
// left: initial !important; | ||
// max-width: 43rem; | ||
// } | ||
// // .react-modal-sheet-header | ||
// .react-modal-sheet-container > div:nth-child(1) { | ||
// display: flex; | ||
// justify-content: space-between !important; | ||
// margin-bottom: 2.8rem; | ||
// padding: 0rem 2.4rem 0rem 2.4rem; | ||
// } | ||
// .react-modal-sheet-drag-indicator { | ||
// display: none; | ||
// } | ||
// `; |
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.
요기(2)는 이제 custonSheet 컴포넌트로 빼줘서 이 컴포넌트에서 더이상 사용하지 않아도 되는 부분이라 주석처리 해둔 것으로 이해했는데요..!
제가 이해한 부분이 맞다면 요 코드는 더이상 사용하지 않는 코드이니 삭제해주시면 좋을 것 같슴당 ~
(지우려다 까묵은 것 같움 크크)
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.
헉 !! 맞아요 누락됐네요 ㅠㅠㅠ 감사합니다!!
🔥 Related Issues
💜 작업 내용
✅ PR Point
공통 컴포넌트가 필요했던 이유?
이 6개의 컴포넌트에서 모두 반복되는 컴포넌트 구조와 스타일링이 사용되고 있었습니다
따라서 common > BottomSheet.tsx에 공통컴포넌트를 제작했습니다
합성컴포넌트 패턴을 사용해보았습니다.
저희가 현재 사용하고 있는 react-modal-sheet 라이브러리가 제공하는
메인컴포넌트-서브컴포넌트 구조를 최대한 그대로 가져갈 수 있게 만들고 싶었습니다.
쉽게 말해, 6개의 컴포넌트에 라이브러리 사용을 빼고 공통컴포넌트를 적용해줌으로써 수정해야 하는 사항이
중복되는 스타일링 코드를 모두 제거하는 것 빼고는 없었으면 좋겠다!고 생각했어요.
따라서 라이브러리의 구조와 프로퍼티를 그대로 유지하여
Header, Content, Container, Scroller, Backdrop 5가지 서브 컴포넌트와
BottomSheet라는 하나의 메인 컴포넌트를 만들었습니다.
이를 CustomSheet라는 이름의 객체로 export 해주어
사용부에서는 기존에 사용했던 라이브러리 컴포넌트명인
Sheet
를 제가 만든 컴포넌트명인CustomSheet
로만 바꾸면 모든게 그대로 작동하도록! 만들었습니다코드를 보시면 이해될 것 같아요!
사용부에서는 이렇게 이름만 쇽샥 바꿔주면 됩니다
여섯개의 컴포넌트가 모두 완전히 동일한 스타일링을 사용하진 않았는데요,
container
와header
의 추가적인 스타일링이 필요한 케이스가 두가지 있었습니다이 두가지 케이스에 대한 추가적인 스타일링은 className으로 처리하였습니다.
라이브러리의 메인컴포넌트, 즉 최상위의 컴포넌트 스타일을 커스텀해줘야 했는데,
라이브러리 내 컴포넌트 위치가 root DOM트리를 벗어나서 바깥쪽에 있더라구요
그래서 코드 내 어느곳에서도 해당 컴포넌트
(.react-modal-sheet-wrapper)
에 접근할 수 없어서전역 스타일을 설정해주는 GlobalStyle.ts에 추가해주었습니다