🕐 커밋 시간: 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: 코드 최적화로 성능 개선 기대
33 lines
853 B
JavaScript
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 };
|
|
}
|