// @flow import * as React from 'react'; import InfiniteLoader from 'react-virtualized/dist/commonjs/InfiniteLoader'; function getDisplayName(WrappedComponent) { return WrappedComponent.displayName || WrappedComponent.name || 'Component'; } type Props = { infiniteLoaderProps: { isRowLoaded: Function, loadMoreRows: Function, minimumBatchSize?: number, rowCount: number, threshold?: number, }, }; function withInfiniteLoader(WrappedComponent: Class>) { const InfiniteLoaderComponent = ({ infiniteLoaderProps: { isRowLoaded, loadMoreRows, minimumBatchSize, rowCount, threshold }, ...rest }: Props) => ( {({ onRowsRendered, registerChild }) => ( )} ); InfiniteLoaderComponent.displayName = `WithInfiniteLoader(${getDisplayName(WrappedComponent)})`; return InfiniteLoaderComponent; } export default withInfiniteLoader;