[ENG-1080] fix explorer fetching (#1302)

fix fetching
This commit is contained in:
nikec
2023-09-06 12:42:02 +02:00
committed by GitHub
parent 65ea570d0b
commit def0cfea45
5 changed files with 8 additions and 27 deletions

View File

@@ -127,7 +127,6 @@ export default ({ children }: { children: RenderItem }) => {
totalCount: explorer.count,
overscan: explorer.overscan,
onLoadMore: explorer.loadMore,
rowsBeforeLoadMore: explorer.rowsBeforeLoadMore,
size:
settings.layoutMode === 'grid'
? { width: settings.gridItemSize, height: itemHeight }

View File

@@ -764,22 +764,15 @@ export default () => {
// Load more items
useEffect(() => {
if (!explorer.loadMore || !explorer.items) return;
if (!explorer.loadMore) return;
const lastRow = virtualRows[virtualRows.length - 1];
if (!lastRow) return;
const rowsBeforeLoadMore = explorer.rowsBeforeLoadMore;
const loadMoreFromRow = Math.ceil(rows.length * 0.75);
const loadMoreOnIndex =
rowsBeforeLoadMore > rows.length || lastRow.index > rows.length - rowsBeforeLoadMore
? rows.length - 1
: rows.length - rowsBeforeLoadMore;
if (lastRow.index === loadMoreOnIndex || lastRow.index > explorer.items.length) {
explorer.loadMore.call(undefined);
}
}, [virtualRows, rows.length, explorer.rowsBeforeLoadMore, explorer.loadMore, explorer.items]);
if (lastRow.index >= loadMoreFromRow - 1) explorer.loadMore.call(undefined);
}, [virtualRows, rows.length, explorer.loadMore]);
useKey(['ArrowUp', 'ArrowDown'], (e) => {
if (!explorerView.selectable) return;

View File

@@ -37,10 +37,6 @@ export interface UseExplorerProps<TOrder extends Ordering> {
* @defaultValue `true`
*/
allowMultiSelect?: boolean;
/**
* @defaultValue `5`
*/
rowsBeforeLoadMore?: number;
overscan?: number;
/**
* @defaultValue `true`
@@ -62,7 +58,6 @@ export function useExplorer<TOrder extends Ordering>({
return {
// Default values
allowMultiSelect: true,
rowsBeforeLoadMore: 5,
selectable: true,
scrollRef,
count: props.items?.length,

View File

@@ -83,7 +83,7 @@ export function useCategoryExplorer(category: Category) {
const explorerSettings = isObjectQuery ? objectsExplorerSettings : pathsExplorerSettings;
const settings = explorerSettings.useSettingsSnapshot();
const take = 10;
const take = 100;
const objectFilter: ObjectFilterArgs = {
category,

View File

@@ -32,7 +32,6 @@ export interface UseGridListProps<IdT extends ItemId = number, DataT extends Ite
gap?: number | { x?: number; y?: number };
overscan?: number;
top?: number;
rowsBeforeLoadMore?: number;
onLoadMore?: () => void;
getItemId?: (index: number) => IdT | undefined;
getItemData?: (index: number) => DataT;
@@ -211,15 +210,10 @@ export const GridList = ({ grid, children, scrollRef }: GridListProps) => {
const lastRow = virtualRows[virtualRows.length - 1];
if (!lastRow) return;
const rowsBeforeLoadMore = grid.rowsBeforeLoadMore || 1;
const loadMoreFromRow = Math.ceil(grid.rowCount * 0.75);
const loadMoreOnIndex =
rowsBeforeLoadMore > grid.rowCount || lastRow.index > grid.rowCount - rowsBeforeLoadMore
? grid.rowCount - 1
: grid.rowCount - rowsBeforeLoadMore;
if (lastRow.index === loadMoreOnIndex || lastRow.index > grid.rowCount) grid.onLoadMore();
}, [virtualRows, grid.rowCount, grid.rowsBeforeLoadMore, grid.onLoadMore, grid]);
if (lastRow.index >= loadMoreFromRow - 1) grid.onLoadMore();
}, [virtualRows, grid.rowCount, grid.onLoadMore, grid]);
useMutationObserver(scrollRef, () => setListOffset(ref.current?.offsetTop ?? 0));