import React, { useEffect } from 'react';
import { PageStore } from '../../utils/stores/';
import { useItemListLazyLoad } from '../../utils/hooks/';
import { ItemListAsync } from './ItemListAsync';
import { PendingItemsList } from './PendingItemsList';
import { ListItem, listItemProps } from '../list-item/ListItem';
import { ItemsListHandler } from './includes/itemLists/ItemsListHandler';
export function LazyLoadItemListAsync(props) {
const [
items,
countedItems,
listHandler,
setListHandler,
classname,
onItemsCount,
onItemsLoad,
onWindowScroll,
onDocumentVisibilityChange,
itemsListWrapperRef,
itemsListRef,
renderBeforeListWrap,
renderAfterListWrap,
] = useItemListLazyLoad(props);
useEffect(() => {
setListHandler(
new ItemsListHandler(
props.pageItems,
props.maxItems,
props.firstItemRequestUrl,
props.requestUrl,
onItemsCount,
onItemsLoad
)
);
PageStore.on('window_scroll', onWindowScroll);
PageStore.on('document_visibility_change', onDocumentVisibilityChange);
onWindowScroll();
return () => {
PageStore.removeListener('window_scroll', onWindowScroll);
PageStore.removeListener('document_visibility_change', onDocumentVisibilityChange);
if (listHandler) {
listHandler.cancelAll();
setListHandler(null);
}
};
}, []);
return !countedItems ? (