fix(Schedule): 무한 스크롤 중복 요청 방지

- inView가 false→true로 변경될 때만 fetchNextPage 실행
- prevInViewRef를 사용하여 이전 상태 추적
- PC 일정, Admin 일정 페이지 모두 적용
This commit is contained in:
caadiq 2026-01-11 19:06:52 +09:00
parent 043925dcb2
commit 3d2a6555f8
2 changed files with 10 additions and 2 deletions

View file

@ -202,10 +202,14 @@ function AdminSchedule() {
const searchTotal = searchData?.pages?.[0]?.total || 0; const searchTotal = searchData?.pages?.[0]?.total || 0;
// Auto fetch next page when scrolled to bottom // Auto fetch next page when scrolled to bottom
// inView true fetch ( )
const prevInViewRef = useRef(false);
useEffect(() => { useEffect(() => {
if (inView && hasNextPage && !isFetchingNextPage && isSearchMode && searchTerm) { // inView falsetrue fetch
if (inView && !prevInViewRef.current && hasNextPage && !isFetchingNextPage && isSearchMode && searchTerm) {
fetchNextPage(); fetchNextPage();
} }
prevInViewRef.current = inView;
}, [inView, hasNextPage, isFetchingNextPage, fetchNextPage, isSearchMode, searchTerm]); }, [inView, hasNextPage, isFetchingNextPage, fetchNextPage, isSearchMode, searchTerm]);
// selectedDate // selectedDate

View file

@ -92,10 +92,14 @@ function Schedule() {
// Auto fetch next page when scrolled to bottom // Auto fetch next page when scrolled to bottom
// inView true fetch ( )
const prevInViewRef = useRef(false);
useEffect(() => { useEffect(() => {
if (inView && hasNextPage && !isFetchingNextPage && isSearchMode && searchTerm) { // inView falsetrue fetch
if (inView && !prevInViewRef.current && hasNextPage && !isFetchingNextPage && isSearchMode && searchTerm) {
fetchNextPage(); fetchNextPage();
} }
prevInViewRef.current = inView;
}, [inView, hasNextPage, isFetchingNextPage, fetchNextPage, isSearchMode, searchTerm]); }, [inView, hasNextPage, isFetchingNextPage, fetchNextPage, isSearchMode, searchTerm]);
// //