This commit is contained in:
PhilReact 2025-03-17 03:59:19 +02:00
parent 78cca12445
commit e4d364eebd

View File

@ -87,7 +87,7 @@ export const MemorizedComponent = ({
searchCacheDuration, searchCacheDuration,
resourceCacheDuration, resourceCacheDuration,
disablePagination, disablePagination,
disableScrollTracker disableScrollTracker,
}: PropsResourceListDisplay) => { }: PropsResourceListDisplay) => {
const { fetchResources } = useResources(); const { fetchResources } = useResources();
const { filterOutDeletedResources } = useCacheStore(); const { filterOutDeletedResources } = useCacheStore();
@ -202,6 +202,11 @@ export const MemorizedComponent = ({
return () => window.removeEventListener("beforeunload", clearOnReload); return () => window.removeEventListener("beforeunload", clearOnReload);
}, [listName]); }, [listName]);
const renderListItem = useCallback((item: ListItem, index: number) => {
return listItem(item, index);
}, [ listItem]);
return ( return (
<div ref={elementRef} style={{ <div ref={elementRef} style={{
width: '100%', width: '100%',
@ -243,7 +248,7 @@ export const MemorizedComponent = ({
defaultLoaderParams={defaultLoaderParams} defaultLoaderParams={defaultLoaderParams}
item={item} item={item}
index={index} index={index}
render={listItem} render={renderListItem}
renderListItemLoader={loaderItem} renderListItemLoader={loaderItem}
/> />
{styles?.gap && <Spacer height={`${styles.gap / 2}px`} />} {styles?.gap && <Spacer height={`${styles.gap / 2}px`} />}
@ -255,7 +260,7 @@ export const MemorizedComponent = ({
<> <>
<HorizontalPaginatedList defaultLoaderParams={defaultLoaderParams} disablePagination={disablePagination} limit={search?.limit || 20} onLoadLess={(displayLimit)=> { <HorizontalPaginatedList defaultLoaderParams={defaultLoaderParams} disablePagination={disablePagination} limit={search?.limit || 20} onLoadLess={(displayLimit)=> {
removeFromList(listName, displayLimit) removeFromList(listName, displayLimit)
}} items={listToDisplay} listItem={listItem} onLoadMore={(displayLimit)=> getResourceMoreList(displayLimit)} gap={styles?.gap} minItemWidth={styles?.horizontalStyles?.minItemWidth} loaderItem={loaderItem} /> }} items={listToDisplay} listItem={renderListItem} onLoadMore={(displayLimit)=> getResourceMoreList(displayLimit)} gap={styles?.gap} minItemWidth={styles?.horizontalStyles?.minItemWidth} loaderItem={loaderItem} />
</> </>
)} )}
@ -264,7 +269,7 @@ export const MemorizedComponent = ({
<VerticalPaginatedList disablePagination={disablePagination} limit={search?.limit || 20} onLoadLess={(displayLimit)=> { <VerticalPaginatedList disablePagination={disablePagination} limit={search?.limit || 20} onLoadLess={(displayLimit)=> {
removeFromList(listName, displayLimit) removeFromList(listName, displayLimit)
}} defaultLoaderParams={defaultLoaderParams} items={listToDisplay} listItem={listItem} onLoadMore={(displayLimit)=> getResourceMoreList(displayLimit)} loaderItem={loaderItem} /> }} defaultLoaderParams={defaultLoaderParams} items={listToDisplay} listItem={renderListItem} onLoadMore={(displayLimit)=> getResourceMoreList(displayLimit)} loaderItem={loaderItem} />
</div> </div>
)} )}
</div> </div>
@ -285,7 +290,8 @@ function arePropsEqual(
prevProps.direction === nextProps.direction && prevProps.direction === nextProps.direction &&
prevProps.onSeenLastItem === nextProps.onSeenLastItem && prevProps.onSeenLastItem === nextProps.onSeenLastItem &&
JSON.stringify(prevProps.search) === JSON.stringify(nextProps.search) && JSON.stringify(prevProps.search) === JSON.stringify(nextProps.search) &&
JSON.stringify(prevProps.styles) === JSON.stringify(nextProps.styles) JSON.stringify(prevProps.styles) === JSON.stringify(nextProps.styles) &&
prevProps.listItem === nextProps.listItem
); );
} }