fix(Schedule): 무한 스크롤 중복 요청 방지
- inView가 false→true로 변경될 때만 fetchNextPage 실행 - prevInViewRef를 사용하여 이전 상태 추적 - PC 일정, Admin 일정 페이지 모두 적용
This commit is contained in:
parent
043925dcb2
commit
3d2a6555f8
2 changed files with 10 additions and 2 deletions
|
|
@ -202,10 +202,14 @@ function AdminSchedule() {
|
|||
const searchTotal = searchData?.pages?.[0]?.total || 0;
|
||||
|
||||
// Auto fetch next page when scrolled to bottom
|
||||
// inView가 true로 변경될 때만 fetch (중복 요청 방지)
|
||||
const prevInViewRef = useRef(false);
|
||||
useEffect(() => {
|
||||
if (inView && hasNextPage && !isFetchingNextPage && isSearchMode && searchTerm) {
|
||||
// inView가 false→true로 변경될 때만 fetch
|
||||
if (inView && !prevInViewRef.current && hasNextPage && !isFetchingNextPage && isSearchMode && searchTerm) {
|
||||
fetchNextPage();
|
||||
}
|
||||
prevInViewRef.current = inView;
|
||||
}, [inView, hasNextPage, isFetchingNextPage, fetchNextPage, isSearchMode, searchTerm]);
|
||||
|
||||
// selectedDate가 없으면 오늘 날짜로 초기화
|
||||
|
|
|
|||
|
|
@ -92,10 +92,14 @@ function Schedule() {
|
|||
|
||||
|
||||
// Auto fetch next page when scrolled to bottom
|
||||
// inView가 true로 변경될 때만 fetch (중복 요청 방지)
|
||||
const prevInViewRef = useRef(false);
|
||||
useEffect(() => {
|
||||
if (inView && hasNextPage && !isFetchingNextPage && isSearchMode && searchTerm) {
|
||||
// inView가 false→true로 변경될 때만 fetch
|
||||
if (inView && !prevInViewRef.current && hasNextPage && !isFetchingNextPage && isSearchMode && searchTerm) {
|
||||
fetchNextPage();
|
||||
}
|
||||
prevInViewRef.current = inView;
|
||||
}, [inView, hasNextPage, isFetchingNextPage, fetchNextPage, isSearchMode, searchTerm]);
|
||||
|
||||
// 데이터 로드
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue