Files
shoptime/com.twin.app.shoptime/src/hooks/useScrollTo.js
optrader a46d34b776 [251209] feat: NBCU-ShopByShow-4
🕐 커밋 시간: 2025. 12. 09. 16:19:54

📊 변경 통계:
  • 총 파일: 5개
  • 추가: +62줄
  • 삭제: -139줄

📝 수정된 파일:
  ~ com.twin.app.shoptime/src/hooks/useScrollTo.js
  ~ com.twin.app.shoptime/src/views/FeaturedBrandsPanel/ShopByShow/ShopByShow.jsx
  ~ com.twin.app.shoptime/src/views/FeaturedBrandsPanel/ShopByShow/ShopByShow.module.less

🗑️ 삭제된 파일:
  - com.twin.app.shoptime/src/views/FeaturedBrandsPanel/ShopByShow/ShopByShowList/ShopByShowList.jsx
  - com.twin.app.shoptime/src/views/FeaturedBrandsPanel/ShopByShow/ShopByShowList/ShopByShowList.module.less

🔧 주요 변경 내용:
  • 핵심 비즈니스 로직 개선
  • 소규모 기능 개선
  • 코드 정리 및 최적화

Performance: 코드 최적화로 성능 개선 기대
2025-12-09 16:19:55 +09:00

33 lines
853 B
JavaScript

import React, { useCallback, useEffect, useRef } from "react";
export default function useScrollTo({ skipAutoScrollTop = false } = {}) {
const scrollTo = useRef();
const scrollTop = useCallback(
({ y = 0, animate = true, duration = 300 } = {}) => {
if (scrollTo && scrollTo.current) {
scrollTo.current({ position: { y }, animate, duration });
}
},
[]
);
const scrollLeft = useCallback(({ x = 0, animate = false } = {}) => {
if (scrollTo && scrollTo.current) {
scrollTo.current({ position: { x }, animate });
}
}, []);
const getScrollTo = useCallback((cbScrollTo) => {
scrollTo.current = cbScrollTo;
}, []);
useEffect(() => {
if (!skipAutoScrollTop) {
scrollTop();
}
}, [skipAutoScrollTop]);
return { getScrollTo, scrollLeft, scrollTop, scrollToRef: scrollTo };
}