diff --git a/frontend/src/pages/pc/admin/AdminSchedule.jsx b/frontend/src/pages/pc/admin/AdminSchedule.jsx index f611e26..a0514d1 100644 --- a/frontend/src/pages/pc/admin/AdminSchedule.jsx +++ b/frontend/src/pages/pc/admin/AdminSchedule.jsx @@ -153,7 +153,7 @@ function AdminSchedule() { const { toast, setToast } = useToast(); const scrollContainerRef = useRef(null); const SEARCH_LIMIT = 20; // 페이지당 20개 - const ITEM_HEIGHT = 100; // 각 아이템 높이 (px) + const ESTIMATED_ITEM_HEIGHT = 100; // 아이템 추정 높이 (동적 측정) // Intersection Observer for infinite scroll const { ref: loadMoreRef, inView } = useInView({ @@ -526,11 +526,11 @@ function AdminSchedule() { }); }, [isSearchMode, searchTerm, searchResults, schedules, selectedCategories, selectedDate]); - // 가상 스크롤 설정 (검색 모드에서만 활성화) + // 가상 스크롤 설정 (검색 모드에서만 활성화, 동적 높이 지원) const virtualizer = useVirtualizer({ count: isSearchMode && searchTerm ? filteredSchedules.length : 0, getScrollElement: () => scrollContainerRef.current, - estimateSize: () => ITEM_HEIGHT, + estimateSize: () => ESTIMATED_ITEM_HEIGHT, overscan: 5, // 버퍼 아이템 수 }); @@ -1100,16 +1100,17 @@ function AdminSchedule() { return (
-
+