diff --git a/packages/react-native-calendar-kit/src/CalendarBody.tsx b/packages/react-native-calendar-kit/src/CalendarBody.tsx index 91d3264..079f6be 100644 --- a/packages/react-native-calendar-kit/src/CalendarBody.tsx +++ b/packages/react-native-calendar-kit/src/CalendarBody.tsx @@ -369,6 +369,7 @@ const CalendarBody: React.FC = ({ scrollEnabled={allowHorizontalSwipe} onTouchStart={onTouchStart} onWheel={onWheel} + onLoad={onLoad} /> ) : ( void; scrollEventThrottle?: number; onWheel?: (event: WheelEvent) => void; + onLoad?: () => void; } export interface ResourceListViewRef { @@ -69,12 +70,14 @@ const ResourceListView = forwardRef( onTouchStart, scrollEventThrottle = 16, onWheel, + onLoad, }, ref ) => { const [viewportWidth, setViewportWidth] = useState(0); const [scrollOffset, setScrollOffset] = useState(0); const scrollTimeoutRef = useRef(null); + const isLoaded = useRef(false); const count = Math.ceil((resources?.length ?? 0) / resourcePerPage); @@ -121,6 +124,15 @@ const ResourceListView = forwardRef( }; }, []); + useEffect(() => { + setTimeout(() => { + if (!isLoaded.current) { + isLoaded.current = true; + onLoad?.(); + } + }, 0); + }, [onLoad]); + const handleLayout = useCallback((event: LayoutChangeEvent) => { const { width: viewWidth } = event.nativeEvent.layout; setViewportWidth(viewWidth);