mirror of
https://github.com/spacedriveapp/spacedrive.git
synced 2026-02-19 23:25:51 -05:00
@@ -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 }
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user