만드는데 시간을 가장 많이 투자했던 기능.
네이티브는 앱 전용이기에 관련 정보가 많았지만, Next.js는 아니기에 정보를 찾는데 오래결렸습니다.
5일 이상은 시간을 투자했던 것 같은데,
네이티브(Kotlin, Swift)의 TopNavigation을 관찰하면서 필수적인 조건들을 정리해 이를 만족하는 것을 목적으로 만들었습니다.
material 라이브러리 사용
후순위로 미뤄둔 조건인데, material 라이브러리에서 Tabs를 발견해 적용하였습니다.
position: sticky 사용
TabBar가 상단에 닿으면 고정이 됩니다.
react-swipeable-views 라이브러리 사용
다른 페이지로 넘어가도 이전에 있던 스크롤이 유지되도록 구현하였습니다.
스크롤 안에 스크롤이 있는 형태였습니다.
onTouchStart, onTouchMove, onTouchEnd, onScroll 등의 이벤트 이용하여 구현하였습니다.
모든 슬라이드가 넘어가기 전까지 다른 페이지로 넘어가지 않도록 구현하였습니다.
material, react-swipeable-views 라이브러리를 사용하기 전,
react-slick, react-swiper 등의 라이브러리를 사용했던 적이 있습니다.
TabBar를 통해 페이지가 스와이퍼 되는 것은 react-swipeable-views 라이브러리를 사용했습니다.
페이지 내 스와이퍼는 react-swiper를 사용했습니다.
페이지를 스와이퍼 하는 것이 아닌 이미지만 스와이퍼하면 되었기에 react-swiper를 사용하였습니다.